【问题标题】:What's the best practice to setup testing for ASP.Net MVC? What to use/process/etc?为 ASP.Net MVC 设置测试的最佳实践是什么?使用/处理/等什么?
【发布时间】:2011-02-15 08:50:34
【问题描述】:

我正在尝试学习如何正确设置 ASP.Net MVC 的测试。

到目前为止,从我在这里和那里阅读的内容来看,遗留代码的定义引起了我的兴趣,其中提到遗留代码是任何没有单元测试的代码。

所以我匆忙完成了我的项目,没有时间为应用程序正确设置单元测试,我仍在学习如何同时正确执行 TDD 和单元测试。然后我遇到了 selenium IDE/RC,并使用它在浏览器端进行测试。

也是在那段时间,我想到了集成测试的概念,所以根据我的理解,似乎应该进行单元测试来定义每个函数的测试和基本假设,以及函数是否依赖于某些东西否则,需要模拟其他东西,以便测试始终是单一的并且可以快速运行。

问题:

  1. 所以我说得对 项目应该从 使用适当的模拟进行单元测试 像犀牛嘲笑。

    然后是其他需要的东西 第三方 dll,数据库数据访问 等通过集成完成 使用硒进行测试?

  2. 因为我有一个函数 调用第三方dll,我不是 确定是否要编写单元测试 nunit 仅实例化对象 并传递一些虚拟数据 打破模拟部分来测试它 或者只是覆盖我的那部分 硒集成测试当我 提交我的表单并调用 dll。

  3. 对于用户验收测试,是 可以肯定地说我们可以只使用硒 再来一次?

  4. 我错过了什么还是有 更好的方式/框架?

我正在尝试为回归测试添加更多测试,并确保在我们添加新功能时不会出现任何问题。我也喜欢 TDD 的想法,因为它有助于更​​好地定义函数,有点像元文档。

谢谢!! 希望这个问题不要太主观,因为我的情况需要它。

【问题讨论】:

    标签: asp.net-mvc unit-testing testing tdd selenium


    【解决方案1】:
    1. 我说得对,项目应该从单元开始 使用适当的模拟测试 像犀牛嘲笑。

    项目应该以良好的关注点分离开始。一旦你有一个很好的分离,你使用抽象而不是使用模拟框架的具体类工作,编写单元测试就是小菜一碟。

    然后是其他需要 3rd 的东西 方 dll、数据库数据访问等 通过使用集成测试完成 硒?

    是的。

    因为我有一个函数调用 第三方dll,我不确定 是否在 nunit 中编写单元测试 只是实例化对象和 传递一些会破坏的虚拟数据 模拟部分来测试它或只是 用我的硒覆盖那部分 当我提交我的集成测试 表单并调用 dll。

    您不应该有调用第三方 DLL 的函数。您应该围绕您将使用的这个 DLL 编写一个抽象/包装器,并将在单元测试中对其进行模拟,您将在单元测试中验证您的函数是否调用了正确的方法而不真正调用它。然后,您将在应用程序中使用 DI 框架来完成管道。

    对于用户验收测试,是 可以肯定地说我们可以只使用硒 再来一次?

    Selenium 或任何其他 Web 测试框架都可以。在更高级 ($) 版本的 Visual Studio 中,您可以编写 web tests

    【讨论】:

    • 感谢您澄清并让我更清楚地了解如何测试和测试什么。但是单元测试仍然应该涵盖那些正确计算的小函数,即如果假设我有一个简单的函数来映射一个国家并返回 id,我应该对那个进行单元测试吗?
    猜你喜欢
    • 2012-08-03
    • 1970-01-01
    • 2012-03-22
    • 2019-07-12
    • 2010-09-17
    • 2011-09-22
    • 1970-01-01
    • 2019-07-20
    • 1970-01-01
    相关资源
    最近更新 更多