我开始学习 MVC4 中的单元测试。
这是我的控制器。
public class AccountController : Controller
{
public ActionResult Register(User user)
{
if (ModelState.IsValid)
{
return View("RegistrationSuccessful");
}
return View("Register");
}
}
这就是考验。
public class AccountControllerTests
{
[TestMethod]
public void invalid_registration_details_should_show_registration_form_again()
{
var controller = new AccountController();
var user = new User();
user.Name = null;
var result = controller.Register(user) as ViewResult;
Assert.AreEqual("Register", result.ViewName);
}
}
这就是模型。
public class User
{
[Required]
public string Name { get; set; }
}
当我调用 controller.Register(user) 时,我认为模型绑定器不会出现,因为我自己实例化控制器而不是通过框架。所以我认为 ModelState.IsValid 默认为真。
我该如何测试这个?如何在单元测试中触发模型验证?