1

我想模拟 ASP.NET 3.5 行为以便对我的 WebControls 进行单元测试:我想测试它们如何使用现有事件系统的模拟数据执行。基本上我想根据输入的模拟数据测试生成的结果 HTML。

怎么做?

我查看了 NMock,但它不适合我的需求,原因有两个:

  1. 它只是在单独的进程中运行 ASP.NET 服务器以获得生成的 HTML;
  2. 我的 WebControls 在渲染时将 HTML 输出为文本,因此有些元素与任何 ASP.NET 控件都不对应(在某些情况下 LiteralControl 除外)。

此外,我有庞大的遗留系统,因此为 MVC 重写所有内容对我来说不起作用(工作量太大),我需要为现有控件编写单元测试。

4

1 回答 1

2

单元测试非常适合可以在不考虑环境或上下文的情况下调用的中间层和后端代码。您越能分离出代码并将环境/上下文要求构建到参数中,测试就越容易和更可靠。

单元测试 UI 代码并不那么简单。通常最好的做法是将纯 UI 代码(在本例中为 html 生成)与 UI 相关的逻辑代码分离到 View 和 ViewModel 类中。但是,您说您的代码库很大,无法进行重大更改。

因此,看看单元测试之外的下一步可能是合适的。使用基于 UI 的回归测试工具进行 UI 自动化和验证。

于 2010-02-04T03:22:59.310 回答