我有一个可以使用的应用程序:
type file.txt|app.exe -i
即。我的应用程序将从file.txt中读取数据。
现在我想编写一些测试来确保应用程序与file.txt中的一些特殊数据配合良好。
如何组织这个?
我的应用程序读取输入
input = Console.In.ReadToEnd();
在没有读取数据的简单测试中,我只是使用App类,如:
using(App app = new App())
{
result = app.Run(args)
}
if (result != 0)
Assert.Fail("Failed");
答案 0 :(得分:1)
您可以将控制台输入替换为您自己的对象,例如StringReader
,并提供您想要的任何输入:
var oldIn = Console.In;
try
{
Console.SetIn(new StringReader("some input"));
using (App app = new App())
{
// input = Console.In.ReadToEnd(); happens here
result = app.Run(args);
}
if (result != 0)
{
Assert.Fail("Failed");
}
}
finally
{
Console.SetIn(oldIn);
}