asp.net - 如何在ASP.NET WebForms中实现TDD

标签 asp.net webforms tdd

我知道Microsoft推出ASP.NET MVC的原因是为了简化ASP.NET的测试驱动设计(TDD)。但是,我希望在ASP.NET WebForms中有一个相当大的棕色字段(现有)应用程序,我希望在其中实现一些TDD类型的功能。我假设有一种方法可以执行此操作,但是有哪些可行的选择?

最佳答案

微软之所以推出ASP.NET MVC,是因为他们认为他们可以从尚未开发的市场中获利-那些认为Web Forms太“超重”,并且正在使用轻量级的框架进行编程的人。这包括那些习惯了MVC范例的人。

它还包括无法弄清楚如何在Web表单中进行单元测试的人员,以及想使用单元测试和TDD的人员。

与其他形式一样,使用Web表单执行此操作的方法是将除UI代码之外的所有内容分离到类库中的单独类中。使用TDD开发那些类。

争议的下一层是是否有必要使用TDD来开发其余代码:标记,客户端代码,用户交互等。我的回答是,如果您将其余部分隔离并进行了测试,那就是不值得为此使用TDD。

考虑:您的页面需要具有特定的外观。您是否要编写一个失败的单元测试来证明您正确使用了CSS?要证明您使用的是正确的CSS样式?我不这么认为。

需要说明的是:在TDD中,我们从失败的单元测试开始。然后,我们进行最简单的更改,使测试成功。

想象一下将TDD用于网页。您将产生哪些失败的测试?

  • 测试该页面是格式正确的HTML
  • 测试页面是否包含正确的标题
  • 测试该页面是否包含
  • “输入ID”标签
  • 一个id文本框
  • 数据网格
  • “转到”按钮
  • 测试GET
  • 后数据网格是否为空
  • 当在文本框中输入“1”并单击“执行”时,测试网格是否加载了来自客户1的数据。

  • 上面的所有测试都不显示页面的外观。没有一个可以测试页面上任何JavaScript的客户端行为。

    我认为这很愚蠢。而是,测试您的DAL方法,该方法根据ID检索数据。确保它返回ID为1的正确ID。然后,手动测试该页面以确保它看起来正确将花费多长时间,您可以输入“1”并单击“转到”,然后在其中显示数据网格对于客户1是正确的数据吗?

    测试驱动开发和自动化单元测试旨在测试行为。 Web表单的UI主要是声明性的。这里有一个很大的“阻抗失配”。

    关于asp.net - 如何在ASP.NET WebForms中实现TDD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1053207/

    相关文章:

    sql - 如何在select语句中调用表值函数?

    c# - 回发或回调参数无效。单击按钮

    c# - 使用 .Net 测试 JavaScript 类 - 最佳实践?

    tdd - 什么是不使用/需要/不需要测试驱动开发的*完全可接受*方法的好例子?

    c# - 将 Azure 设置为不预编译源代码

    mocking - 使用 Auto Mocking 容器是好还是坏?

    asp.net - 使用中继器,获取 FK 并显示该表中的列

    c# - 部署到Azure问题:无法加载文件或程序集'System.Web.Mvc,版本= 5.2.3.0… list 不匹配问题

    asp.net - 打开 Windows 身份验证时使用 ajax 调用 Web 服务?

    c# - Web 窗体项目中的小写 URL