相关疑难解决方法(0)

单元测试控制台c#app的最佳方式

我有一个简单的控制台应用程序 它被普通的主要解雇了,整个程序都在main中.它使用命令行分析器库.然后我在解决方案中有第二个项目,包含应用程序的单元测试.但我似乎没有找到从测试中启动主程序进程的好方法.我当前启动该过程的代码看起来像这样.

...

process = new Process();
process.StartInfo.FileName = "FooBar";
process.StartInfo.Arguments = arguments;

// use it to start from testing environment
process.StartInfo.UseShellExecute = false;

// redirect outputs to have it in testing console
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;

...
Run Code Online (Sandbox Code Playgroud)

我试过设置

process.StartInfo.WorkingDirectory
Run Code Online (Sandbox Code Playgroud)

AppDomain.CurrentDomain.BaseDirectory
Run Code Online (Sandbox Code Playgroud)

Environment.CurrentDirectory;
Run Code Online (Sandbox Code Playgroud)

但是,我是否必须为控制台应用程序可执行文件指定整个相对路径,还是有一种改进的方法来启动"已测试"应用程序的进程?首先,我在"主要"程序中将我的测试作为一个类,然后它工作得很好.当我将测试移动到他们自己的项目时,问题就开始了.这就是为什么我怀疑道路是问题或者那种性质的东西.

我也尝试过运行Program.Main,但这感觉很错:)

c# nunit unit-testing

8
推荐指数
2
解决办法
2万
查看次数

NUnit测试 - 循环 - C#

我是TDD的新手并试图解决问题.

在我的任务中,我必须从控制台读取一堆字符串并将它们添加到字符串类型列表中.在我的测试方法中,我编写了一个for循环来读取字符串并传递给要添加的方法.我不知道如何测试这个过程,有点困惑.任何帮助将不胜感激.谢谢.

在测试方法中循环.

   for(int i=0;i<robot.noOfCommands;i++)
        {
            robot.readCommand(Console.ReadLine());

        } 
Run Code Online (Sandbox Code Playgroud)

我在C#.Net中编写代码

c# tdd nunit unit-testing visual-studio-2010

1
推荐指数
2
解决办法
1550
查看次数

标签 统计

c# ×2

nunit ×2

unit-testing ×2

tdd ×1

visual-studio-2010 ×1