相关疑难解决方法(0)

单元测试ASP.NET DataAnnotations验证

我正在使用DataAnnotations进行模型验证,即

    [Required(ErrorMessage="Please enter a name")]
    public string Name { get; set; }
Run Code Online (Sandbox Code Playgroud)

在我的控制器中,我正在检查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);
    }
Run Code Online (Sandbox Code Playgroud)

在测试中我是否需要做额外的事情来设置模型验证?

谢谢,

asp.net asp.net-mvc data-annotations

65
推荐指数
4
解决办法
3万
查看次数

我该如何测试ModelState?

我怎么测试Controller.ViewData.ModelState?我宁愿没有任何模拟框架.

c# asp.net-mvc

50
推荐指数
4
解决办法
3万
查看次数

标签 统计

asp.net-mvc ×2

asp.net ×1

c# ×1

data-annotations ×1