如何模拟 ASP.NET 3.5 对我的 Web 控件进行单元测试?

发布于 2024-08-19 20:41:28 字数 376 浏览 4 评论 0原文

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

怎么做呢?

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

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

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

I want to mock ASP.NET 3.5 behavior in order to unit test my WebControls: I want to test how they perform with mock data with existing system of events. Basically I want to test generated result HTML based on input mock data.

How to do it?

I looked into NMock, but it doesn't suit my needs for 2 reasons:

  1. It just runs ASP.NET server in
    separate process in order to get
    resulting HTML;
  2. My WebControls output HTML as a text
    on render, so there are elements
    which do not correspond to any
    ASP.NET control (except
    LiteralControl in some cases).

Also, I have huge legacy system, so rewriting everything for MVC won't work for me (too much job), I need to write unit tests to existing controls.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

辞旧 2024-08-26 20:41:28

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

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

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

Unit testing is really ideal for middle-tier and back-end code which can be called without regard to the environment or context. The more you can separate out your code and build environmental/contextual requirements into parameters the easier and more reliable it is to test.

Unit testing UI code is not as straightforward. Typically the best thing is to separate the pure UI code (html generation in this case) from the UI-related logic code into a View and ViewModel classes. However, you said you have a large codebase and can't make major changes.

Therefore it's probably appropriate to look at the next step beyond unit testing. Use a UI-based regression testing tool to do UI automation and verification.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文