我知道微软推出ASP的原因.NETMVC旨在简化ASP的测试驱动设计(TDD).网然而,我在ASP中有一个相当大的brown field(现有)应用程序.NET WebForms,我希望在其中实现一些TDD类型的功能.我假设有办法做到这一点,但有哪些可行的 Select ?
我知道微软推出ASP的原因.NETMVC旨在简化ASP的测试驱动设计(TDD).网然而,我在ASP中有一个相当大的brown field(现有)应用程序.NET WebForms,我希望在其中实现一些TDD类型的功能.我假设有办法做到这一点,但有哪些可行的 Select ?
微软推出了ASP.NET MVC,因为他们认为他们可以从一个尚未开发的市场中赚钱——那些觉得Web表单太"重"的人,以及使用更轻的框架编程的人.这包括那些习惯于MVC范式的人.
它还包括那些不知道如何在web表单中进行单元测试的人,以及那些想使用单元测试和TDD的人.
处理Web窗体的方法就像处理其他任何事情一样,就是将除UI代码之外的所有内容分离到类库中的单独类中.使用TDD开发这些类.
下一层争议是是否有必要使用tdd来开发其余的代码:标记、客户端代码、用户交互等.我的答案是,如果您已经隔离并测试了睡觉,那么使用tdd来做这件事是不值得的.
考虑一下:您的页面需要有特定的外观.您会编写一个失败的单元测试来证明您正确使用CSS吗?来证明您使用的是正确的CSS样式?我不这样认为.
澄清一下:在TDD中,我们从失败的单元测试开始.然后我们做出最简单的改变,使测试成功.
想象一下,将TDD用于网页.你会进行哪些失败的测试?
并且没有对页面外观进行上述任何测试.它们都没有测试页面上任何JavaScript的客户端行为.
我觉得这很愚蠢.相反,测试基于ID检索数据的DAL方法.确保它为ID 1返回正确的ID.然后,手动测试页面以确保其外观正确需要多长时间,您可以输入"1"并单击"Go",并且网格中显示的数据是客户1的正确数据?
测试驱动开发和自动化单元测试旨在测试行为.Web表单的UI主要是声明性的.这里有一个很大的"阻抗失配".