我在 Visual Studio 中有一个测试项目,我想用它来测试我的控制台应用程序(在同一解决方案中)。
我正在尝试设置使用特定参数调用控制台应用程序的测试,并将实际输出与我的预期进行比较,然后执行我通常的 Assert 语句以适当地通过/失败测试。
我能想到的最好方法是在单元测试中使用 System.Diagnostics.Process 执行应用程序 exe。这有效。我可以读取输出,一切都很好。
我遇到的问题是当我想在控制台应用程序代码中设置断点时,这样我就可以进行一些调试。由于 Process 启动了控制台应用程序,因此 Visual Studio 不会监视控制台应用程序,因此它不会中断。没有什么像 Web 应用程序那样“等待来自外部应用程序的请求”,我明白为什么,但这基本上就是我正在寻找的。
所以我的问题是,有没有办法在 Visual Studio 中设置这些单元测试,我仍然可以在其中调试控制台应用程序?我能想到的唯一解决方法是在控制台应用程序上设置启动操作来启动外部程序,该程序将调用 MSTest.exe,并以这种方式运行适当的单元测试。但这似乎是一个我只是想错了的问题,实际上有一个much更明显的解决方案。
让您的控制台应用程序尽可能精简,并将所有业务逻辑移至域类。例如。
class Program
{
static void Main(string[] args)
{
Foo foo = new Foo(args);
}
}
之后,您可以轻松地为 Foo 类编写单元测试。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)