如何验证两个ASP.NET页面具有相同的输出HTML?

时间:2013-02-27 07:55:53

标签: asp.net unit-testing refactoring nunit legacy-code

我正在研究ASP.NET网站的遗留代码,我想重构。

我得出结论,测试休息的最简单方法是将最终HTML与旧页面进行比较,尤其是因为对UI的依赖程度如此之高。 (请批评这是不是一个坏方法)

页面是从查询字符串动态创建的,因此我需要生成具有所有不同组合的测试。

如何运行此测试,理想情况下我还希望将其集成到NUnit等工具中,这可以完成吗?

由于

3 个答案:

答案 0 :(得分:1)

如果您拥有Tester版本或终极版本,Visual Studio中有一些选项,Selenium可能是另一种选择。

关于测试用户界面,你仍然处于webforms状态,它总是相当复杂,所以根据你的场景,有些东西很容易在代码中测试(在用户界面之前),其他东西只能被看到,直到最后用HTML呈现。

答案 1 :(得分:1)

添加一个像Panel这样的容器控件会完全破坏你的逻辑,因为这会改变为旧版asp.net生成的ClientID。

你必然会得到太多的误报,其中页面并没有真正破坏。

此外,asp.net不会将任何设置为Visible的内容呈现为false。除非你的项目没有在按钮点击(PostBacks)上显示的代码,否则你不应该遵循这种方法。您将错过隐藏部分的任何更改。

用户在重构,迁移后接受最终页面;最好手动完成 您可以自动化数据和业务逻辑层的测试,但是使用传统的asp.net自动化UI测试似乎需要花费太多时间并且收益不大。

答案 2 :(得分:0)

我偶然发现了一个似乎这样做的有趣工具,名为Llewellyn Falco的Approval Tests。

http://www.youtube.com/watch?v=52YouQkd-f8