我有以下控制器:在控制器單元測試中包含ModelState.IsValid?
public ActionResult Login(LoginUseraccount loginUseraccount)
{
try
{
if (ModelState.IsValid)
{
//Do something
return RedirectToAction("Index", "Dashboard");
}
else
{
//Do something
return RedirectHomeIndex;
}
}
catch (UserNotActiveException userNotActiveException)
{
//Do something
return RedirectHomeIndex;
}
catch (Exception exception)
{
//Do something
return RedirectHomeIndex;
}
}
我有三個問題:
1)你定義了兩個測試爲的if-else? 第一個測試會測試ModelState.IsValid == true,另一個測試ModelState.IsValid == false?在針對該模型編寫的單元測試中測試它是否更有意義?
2)你會測試UserNotActiveException?如果拋出異常由業務邏輯(其他類)決定。所以在業務邏輯測試中做這個測試會更有意義,你同意嗎?
3)你會測試例外嗎?我認爲這沒有道理。
我知道沒有「正確」或「錯誤」,但我真的很感謝您的反饋。
1是的,雖然else是多餘的,因爲如果返回。 2)是,3,是 – Slicksim