我很難找到我期望成爲一個非常簡單的場景的信息。我試圖在我的ASP.NET Mvc 2控制器上使用具有DataAnnotions的自定義輸入模型對單元進行單元測試。正如標題中提到的,我的測試框架是xUnit。單元測試(xUnit)具有自定義輸入模型的ASP.NET Mvc控制器?
這裏是我的自定義輸入模型:
public class EnterPasswordInputModel
{
[Required(ErrorMessage = "")]
public string Username { get; set; }
[Required(ErrorMessage = "Password is a required field.")]
public string Password { get; set; }
}
這裏是我的控制器(拿出一些邏輯來簡化此例):
[HttpPost]
public ActionResult EnterPassword(EnterPasswordInputModel enterPasswordInput)
{
if (!ModelState.IsValid)
return View();
// do some logic to validate input
// if valid - next View on successful validation
return View("NextViewName");
// else - add and display error on current view
return View();
}
這裏是我的x單位事實(也簡化了):
[Fact]
public void EnterPassword_WithValidInput_ReturnsNextView()
{
// Arrange
var controller = CreateLoginController(userService.Object);
// Act
var result = controller.EnterPassword(
new EnterPasswordInputModel
{
Username = username, Password = password
}) as ViewResult;
// Assert
Assert.Equal("NextViewName", result.ViewName);
}
當我運行我的測試,我得到以下錯誤在我的測試其實試圖檢索控制器結果時(法部分):
System.NullReferenceException: Object reference not set to an instance of an object.
預先感謝您可以提供任何幫助!
當您調試,NULL是什麼?的ModelState? – Jab 2010-05-14 13:21:45