最佳答案
我正在使用 DataAnnotions 进行模型验证,即。
[Required(ErrorMessage="Please enter a name")]
public string Name { get; set; }
在我的控制器中,我正在检查 ModelState 的值。对于从我的视图发布的无效模型数据,这正确地返回 false。
但是,在执行控制器操作的单元测试时,ModelState 总是返回 true:
[TestMethod]
public void Submitting_Empty_Shipping_Details_Displays_Default_View_With_Error()
{
// Arrange
CartController controller = new CartController(null, null);
Cart cart = new Cart();
cart.AddItem(new Product(), 1);
// Act
var result = controller.CheckOut(cart, new ShippingDetails() { Name = "" });
// Assert
Assert.IsTrue(string.IsNullOrEmpty(result.ViewName));
Assert.IsFalse(result.ViewData.ModelState.IsValid);
}
我是否需要做一些额外的工作来设置测试中的模型验证?