我很想开始一个新的 ASP.NET MVC 项目。一些教程推荐使用MVC Contrib。如果 Stack Overflow 社区兑现了通过 ASP.NET MVC 提高生产力的承诺,我想征求他们的意见。基本上,MVC Contrib 的好处值得为我的应用程序添加另一个泄漏抽象吗?
1 回答
我认为 MVC Contrib 在测试方面是无价的。它们提供了很多扩展方法,让您可以流畅地测试路由和操作结果。例如:
"~/Administration/Users/Modify/testuser" .ShouldMapTo(a => a.Modify("testuser"));
...用于路由和操作结果:
Controller.List() .AssertViewRendered() .WithViewData>() .Count .ShouldEqual(4, "应该是4个用户返回");
MVC Contrib 还提供了一个有用的 TestControllerBuilder 类,它可以构建一个控制器并负责伪造所有必要的 HTTP 上下文类型的东西。这看起来并不多,但与 DI 搭配使用,如果很痛苦,请自己编写。
Builder = new TestControllerBuilder(); Builder.CreateController<CT>();
从测试开始,DI/IoC 的控制器工厂非常有用,因此您不必自己编写它,但恕我直言,这不是必需的。
我喜欢 MVC Contrib 的另一件事是流畅的 HTML 助手。我认为使用这些流利的助手设置 HTML 属性和其他数据要好得多——这里有两个例子:
<%= this.TextBox("name").Label("Activity 类别名称:").MaxLength(50).Class("required")