我在开始一个新的ASP.NET MVC项目时非常关注。一些教程建议使用MVC Contrib。如果它实现了使用ASP.NET MVC提高工作效率的承诺,我想获得Stack Overflow社区的意见。基本上MVC Contrib的好处是值得在我的应用程序中添加另一个leaky abstraction吗?
答案 0 :(得分:10)
我认为MVC Contrib在测试方面非常宝贵。它们提供了许多扩展方法,使您可以流畅地测试路由和操作结果。例如:
“〜/管理/用户/修改/ TESTUSER” .ShouldMapTo(a => a.Modify(“testuser”));
...用于路由和行动结果:
Controller.List() .AssertViewRendered() .WithViewData>() 。计数 .ShouldEqual(4,“应该是4个用户返回”);
MVC Contrib也提供了一个有用的TestControllerBuilder类,它可以构建一个控制器并负责伪造所有必需的HTTP上下文类型的东西。这似乎不是很多,但与DI配对,如果痛苦就自己写。
Builder = new TestControllerBuilder(); Builder.CreateController<CT>();
从测试开始,DI / IoC的控制器工厂非常有用,因此您不必自己编写,但不是必需的恕我直言。
我喜欢MVC Contrib的另一件事是流畅的HTML助手。我认为使用这些流利的助手设置HTML属性和其他数据要好得多 - 这里有两个例子:
&lt;%= this.TextBox(“name”)。Label(“活动类别名称:”)。MaxLength(50).Class(“required”)