在閱讀了關於MVC和測試驅動開發的相當多之後,我剛開始將我的webforms應用程序轉換爲MVC 。我正在使用this書作爲在ASP.NET MVC中學習TDD的參考之一。下面哪個是更好的方式來編寫單元測試,並在ASP.NET MVC中繼續TDD
一股股從本書測試是如下:
[TestMethod()]
public void Register_Can_Get_To_View()
{
var target = new AccountController();
var results = target.Register();
Assert.IsNotNull(results);
Assert.IsInstanceOfType(results, typeof(ViewResult));
Assert.AreEqual("Register", target.ViewData["Title"]);
}
我也有看,從CodePlex上的NerdDinner範例源代碼,並有類似的單元測試如下
[TestMethod]
public void Index()
{
// Arrange
HomeController controller = new HomeController();
// Act
ViewResult result = controller.Index() as ViewResult;
// Assert
Assert.IsNotNull(result);
}
寫入
在第一種情況下,作者正在將結果類型與ViewResult進行比較。然而,在第二種情況下,結果將作爲ViewResult進行處理,並且未經過測試。
哪個更好,我需要如第一種情況那樣詳細測試嗎?
測試應該只測試一件事。每個測試你應該使用一個Assert方法。如果您需要檢查多個事物,請考慮編寫更多測試。 – frennky 2011-01-21 13:27:46