【发布时间】:2010-05-26 14:41:59
【问题描述】:
我一直在阅读有关 MVC 的文章,其中作者认为可测试性是 MVC 的主要优势之一。他们将它与 ASP.NET WebForms 进行比较,以及在 WebForms 中测试代码的难度。
我确实理解这很困难,但有人可以解释一下过去是如何编写单元测试来测试逻辑背后的代码的吗?
【问题讨论】:
标签: asp.net unit-testing tdd
我一直在阅读有关 MVC 的文章,其中作者认为可测试性是 MVC 的主要优势之一。他们将它与 ASP.NET WebForms 进行比较,以及在 WebForms 中测试代码的难度。
我确实理解这很困难,但有人可以解释一下过去是如何编写单元测试来测试逻辑背后的代码的吗?
【问题讨论】:
标签: asp.net unit-testing tdd
在过去,我使用模式 Model View Presenter 测试 aspnet webforms。我能够使用这种模式测试代码,因为我将条件逻辑/循环/等抽象为一个单独的类,该类不存在于 webforms 框架中。
webforms 代码隐藏中剩下的只是一些属性和页面加载中的调用以初始化演示者类本身。
然后每个事件处理程序将简单地将工作传递给演示者类。
我在这个模式上花了很多时间,发现它使测试更加友好,但与 aspnet mvc 相比,它的工作量很大
【讨论】:
后面的代码是一个类中的普通方法(与另一个类的唯一区别是这个类继承自Page对象)
所以它是可测试的。 大多数问题的出现是因为这些方法与网格等 web.ui 控件紧密耦合;他们不是那么容易伪造的。 如果你没有伪造 UI 控件,那么你也在测试 UI 控件的内部工作,这有点过头了。
【讨论】: