0
在我的單元測試中,我發現當我使用沒有視圖名稱的View()從控制器操作返回時,ViewResult.ViewName被設置爲string.Empty。爲了設置它,必須將其指定爲View()調用的參數。例如,給出下面的單元測試:爲什麼不指定視圖名稱會導致我的單元測試失敗?
[TextFixture]
public class MyControllerTests
{
[Test]
public void TestMyAction()
{
var controller = new MyController();
var result = controller.MyAction();
Assert.AreEqual("MyAction", result.ViewName);
}
}
以下行動的實施將導致單元測試失敗:
public class MyController : Controller
{
public ActionResult MyAction()
{
return View();
}
}
,而這一次將傳遞:
public class MyController : Controller
{
public ActionResult MyAction()
{
return View("MyAction");
}
}
我m在.NET 4.0上使用ASP.NET MVC 2(pre-beta)。但是,我沒有使用.NET 4.0特定的任何東西。我覺得這種行爲很奇怪,因爲我認爲ViewName是可以在單元測試的斷言中檢查的可靠屬性之一。
我明白了。是否有推薦的文章/帖子/關於適當的斷言的任何內容? – alastairs 2009-11-18 17:22:21
沒有一個。如果你的谷歌的「asp.net mvc單元測試」的東西,你會得到處理這個問題的數百篇文章/博客文章。 這完全取決於你想要測試什麼。 – 2009-11-19 02:29:17