如何解决单元测试模块化ASP.Net Webforms页面
| 我目前正在使用ASP.Net Web表单的旧版应用程序。此应用程序中的页面在aspx和ascx文件中混合了格式和逻辑。通常情况如下:if (number of passengers > 1)
include singlePassengerForm.ascx
else
include multiPassengerForm.ascx
但要想复杂得多-嵌套的ascx包含更多逻辑,更大页面等。
我想解决此问题,但要慢慢解决。我目前正在追求的最终设计是非常轻巧的页面/控件,它没有任何逻辑,但是只会从模型中挑选东西(包括要嵌入的ascx)。我喜欢将页面和控件分解为较小的事实,我想保留这一点。因此,这将转换为一个互连的模型(例如:ReservationFormModel具有一个PassengerFormModel-可以是SinglePassengerForm或MultiplePassengerForm)和一组互连的页面,其中可能包含一组用于填充模型并将模型与页面连接的控制器。所以有点MVCish。基本想法是,我想对该逻辑进行单元测试。
我想做的另一件事是将其修复为一个持续进行的过程-并非一帆风顺。因此,我希望能够从小处着手,在这里我只修复页面的一部分,而页面的其余部分仍使用aspx / ascx中的嵌入式逻辑和数据的旧方法。
任何对此的想法/建议/经验报告将不胜感激。
我已经看到了答案:对ASP.NET 2.0网页进行单元测试的最佳方法是什么?以及:单元测试旧版ASP.NET Webforms应用程序
但我正在寻找更具体的东西
解决方法
众所周知,WebForm路径不是编写代码的最可测试的方法。实际上,MVC模式的一个关键方面是可以更好地测试控制器。
一个简单的解决方案是将核心逻辑包括在MVC Controller之类的\“ Logic \”类中,并仅使用后页代码将数据绑定到控件。然后,您可以使用例如NUnit框架创建测试夹具,并使用NCover监视测试代码覆盖。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。