单元测试后面的ASP.NET代码

Nic*_*ick 6 asp.net tdd unit-testing

我一直在阅读MVC,其中作者认为可测试性是MVC的主要优势之一.他们将它与ASP.NET WebForms进行比较,以及测试WebForms中的代码是多么困难.

我确实理解这很困难,但有人可以解释过去如何编写单元测试来测试逻辑背后的代码吗?

Tor*_*ups 5

在过去,我使用Model View Presenter模式测试了aspnet webforms.我能够使用这种模式测试代码,因为我将条件逻辑/循环/等抽象为一个单独的类,它不存在于webforms框架中.

webforms代码隐藏中剩下的只不过是一些属性和页面加载中的调用来初始化演示者类本身.

然后每个事件处理程序将简单地将工作传递给演示者类.

我花了很多时间使用这种模式,发现它使得测试更加友好,但与aspnet mvc相比,这是一项很大的工作.


Mic*_*hel 3

后面的代码是类中的普通方法(与另一个类唯一的区别是该类继承自Page对象)

所以是可以测试的。大多数问题的出现是因为这些方法与网格等 web.ui 控件紧密耦合;它们并不那么容易伪造。如果你没有伪造 UI 控件,那么你也在测试 UI 控件的内部工作原理,这有点过头了。