Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何验证两个ASP.NET页面具有相同的HTML输出?_Asp.net_Unit Testing_Refactoring_Nunit_Legacy Code - Fatal编程技术网

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

如何验证两个ASP.NET页面具有相同的HTML输出?,asp.net,unit-testing,refactoring,nunit,legacy-code,Asp.net,Unit Testing,Refactoring,Nunit,Legacy Code,我正在为一个ASP.NET网站编写遗留代码,我想进行重构 我得出的结论是,测试中断的最简单方法是将最终的HTML与旧页面进行比较,尤其是因为对UI有太多的依赖性。(如果这是一个糟糕的方法,请批评) 页面是根据查询字符串动态创建的,因此我需要使用所有不同的组合生成测试 我如何运行这个测试,理想情况下我也想将它集成到NUnit这样的工具中,这可以做到吗 谢谢如果您有Tester版或ultimate版,Visual Studio中有一些选项,可能是另一个选项 关于测试UI,您仍然使用webforms,

我正在为一个ASP.NET网站编写遗留代码,我想进行重构

我得出的结论是,测试中断的最简单方法是将最终的HTML与旧页面进行比较,尤其是因为对UI有太多的依赖性。(如果这是一个糟糕的方法,请批评)

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

我如何运行这个测试,理想情况下我也想将它集成到NUnit这样的工具中,这可以做到吗


谢谢

如果您有Tester版或ultimate版,Visual Studio中有一些选项,可能是另一个选项


关于测试UI,您仍然使用webforms,它总是相当复杂,因此根据您的场景,有些东西很容易在代码中测试(在UI之前),而有些东西可以直接查看,直到您的HTML呈现结束。

添加单个容器控件(如面板)都会完全破坏您的逻辑,因为这会更改为旧版asp.net生成的客户端ID

你肯定会得到太多的误报,因为页面并没有真正被破坏

此外,asp.net不会呈现任何设置为可见的内容。除非您的项目没有在单击按钮(回发)时可见的代码,否则您不应该采用这种方法。您将错过对隐藏部分的任何更改

用户接受重构、迁移后的最终页面;最好手动完成。

您可以自动化数据层和业务逻辑层的测试,但是使用传统的asp.net自动化UI测试似乎会占用太多的时间,并且不会带来什么好处

我偶然发现了一个有趣的工具,它似乎可以做到这一点,叫做Llewellyn Falco的批准测试


2个问题。1) 我可以模仿回发吗?2) 如果我只检查相关的HTML,即使用HtmlAlityPack解析为有效的XML,并且只检查具有特定id的部分,这仍然是一种糟糕的方法吗?问题是id会改变。这种方法还不错。你可能需要花些时间才能把事情做好,但这似乎不值得。这是主观的,取决于你网站的大小。