我是单元测试的新手,我正在使用 VS 2010 单元测试框架。
我有一个从用户那里获取整数的函数,然后根据用户输入执行不同的函数。我已经阅读了很多关于单元测试的内容,但是我没有找到任何可以告诉我如何测试 switch 语句的每个分支的内容。到目前为止我得到了什么:
[TestMethod]
public void RunBankApplication_Case1()
{
using (var sw = new StringWriter())
{
using (var sr = new StringReader("1"))
{
Console.SetOut(sw);
Console.SetIn(sr);
BankManager newB = new BankManager();
newB.RunBankApplication();
var result = sw.ToString();
string expected = "Enter Account Number: ";
Assert.IsTrue(result.Contains(expected));
}
}
}
当调用案例 1 下的函数时,首先发生的是字符串“输入帐号:”被写入控制台。但是,这根本行不通。我没有正确地将输入传递给控制台吗?谢谢您的帮助!
编辑:我的 RunBankApplication() 函数:
do
{
DisplayMenu();
option = GetMenuOption();
switch (option)
{
case 1:
if (!CreateAccount())
{
Console.WriteLine("WARNING: Could not create account!");
}
break;
case 2:
if (!DeleteAccount())
{
Console.WriteLine("WARNING: Could not delete account!");
}
break;
case 3:
if (!UpdateAccount())
{
Console.WriteLine("WARNING: Could not update account!");
}
break;
case 4: DisplayAccount();
break;
case 5: status = false;
break;
default: Console.WriteLine("ERROR: Invalid choice!");
break;
}
} while (status);