我正在尝试使用VS 2008内置的单元测试框架编写C#单元测试,而我要测试的方法调用了
同时,这是我想要测试的代码要点:
Environment.Exit(0)
。当我在单元测试中调用此方法时,我的单元测试会被中止。该方法确实应该调用Exit
,我想找到一种方法来测试它是否这样做,并测试它使用的退出代码。我应该怎么做?我查看了Microsoft.VisualStudio.TestTools.UnitTesting Namespace,但没有看到任何相关内容。[TestMethod]
[DeploymentItem("myprog.exe")]
public void MyProgTest()
{
// Want to ensure this Exit's with code 0:
MyProg_Accessor.myMethod();
}
同时,这是我想要测试的代码要点:
static void myMethod()
{
Environment.Exit(0);
}
编辑:这是我在测试方法中使用的解决方案,感谢RichardOD提供的帮助:
Process proc;
try
{
proc = Process.Start(path, myArgs);
}
catch (System.ComponentModel.Win32Exception ex)
{
proc = null;
Assert.Fail(ex.Message);
}
Assert.IsNotNull(proc);
proc.WaitForExit(10000);
Assert.IsTrue(proc.HasExited);
Assert.AreEqual(code, proc.ExitCode);