我是單元測試的新手,我正在使用VS 2010單元測試框架。如何在控制檯上依賴於單元測試switch語句
我有一個從用戶抓取整數的函數,然後根據用戶輸入執行不同的函數。我已經閱讀了很多關於單元測試的內容,但是我還沒有發現任何能夠告訴我如何測試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);
理想情況下,您可以將應用程序設置爲使用依賴注入,以便您可以使用模擬來表示依賴關係。 –