1

我们目前正在从 Asp.net 切换到 asp.net mvc 框架,我希望找到一些与 asp.net MVC 与普通 ASP.net 测试相关的答案。

有一些内部讨论说 MVC 更加“测试友好”,是的,但是在什么样的意义上?我的意思是,你能给我提供一个单元测试/测试用例的例子,或者用 MVC 进行单元测试比在 Asp.net 中做同样的事情更容易(或者最好更容易)的场景吗?

因为我们目前在这个事实上有很大的争论,而这次谈话中的两个论点是:1. MVC 对测试更友好,更容易测试 2. ASP.net 可以像 MVC 一样进行测试(MVC 是建立在 asp 之上的) 。网)

这个讨论无处可去,我希望求助于你,所有知道stackoverflow的神,在这件事上寻求帮助来决定这个。就像我说的,我更喜欢一些可以轻松放在 ASP.net 和 MVC 上的示例/案例,以证明 MVC 实际上更容易测试。还是更容易测试?我们正试图使我们的开发生命周期对测试更加友好,这是 mvc 的驱动目标之一,但一些老开发人员坚持认为 asp.net 是要走的路。

如果可能的话,您能否向我提供一些关于此事的见解、个人意见、客观意见以及所有这些。显然,如果我可以在两个框架上实现一个测试示例来证明一个在测试方面比另一个更好,那就更好了。

谢谢!

4

3 回答 3

4

如果您使用 MVP 模式构建 WebForms 项目,那么它就像 MVC 一样可测试。

不同之处在于,使用 MVC 框架,默认情况下它几乎迫使您编写可测试的代码,而使用 WebForms,您必须非常自律和严格才能使其可测试。但是,有一些可用的 MVP 框架可以帮助解决这个问题,例如http://webformsmvp.com/

于 2012-06-07T07:18:20.187 回答
0

我为 ASP.NET 编写了一个导航框架,可以让您编写可单元测试的 Web 窗体,http://navigation.codeplex.com/

我已经使用该框架为 Web 表单实现了 NerdDinner 示例,以表明它与 MVC 一样对单元测试友好,http://navigationnerddinner.codeplex.com/

于 2012-06-07T08:47:44.127 回答
0

我没有使用过asp.net,所以我的评论只是关于asp.net mvc 的单元测试。

一般来说,(正如 Christian 所写的)如果你纪律严明,并且使用良好的实践(控制反转,对接口进行编程),代码很容易进行单元测试。如果你不这样做(例如,直接从控制器写入数据库),那么即使是 asp.net mvc 也很难进行单元测试。尽管 asp.net mvc 试图强制程序员分离关注点。

在 asp.net mvc 中,不能对视图进行单元测试。出于这个原因,视图应该保持简单,只显示来自视图模型的数据并且只包含简单的逻辑(for 循环和简单的 if 语句)。再次由程序员来确保视图保持简单(例如使用部分视图、扩展方法)。

控制器和模型类可以进行单元测试,只要它们不耦合(依赖于)难以测试的类(例如数据库存储库)或无法模拟的类。

asp.net mvc 中的路由也可以进行单元测试。

也许通过一个 asp.net mvc 教程。您应该看到许多类是松散耦合的并且易于单元测试。

于 2012-06-07T08:14:34.490 回答