【问题标题】:Good ways to test a unit that communicates via HTTP测试通过 HTTP 通信的单元的好方法
【发布时间】:2010-09-09 06:37:07
【问题描述】:

通常,我发现自己想为一部分访问 HTTP 资源的代码编写单元测试,作为其正常功能的一部分。你有没有找到编写这类测试的好方法?

【问题讨论】:

    标签: unit-testing language-agnostic http


    【解决方案1】:

    根据您使用的语言或框架,启动本地运行的 HTTP 服务器可能很简单,该服务器提供您想要的资源。

    【讨论】:

      【解决方案2】:

      从主代码中提取访问 HTTP 资源的部分。为该新组件创建一个接口,在您的测试中,模拟该接口并返回您可以可靠控制的数据。

      您可以将 HTTP 访问作为集成测试进行测试。

      【讨论】:

      • 另一件事 - 如果您使用的是 HTTP 库或框架,它很有可能已经在工作。你真的不需要测试这个库。您只需要测试发送/接收数据的代码位。
      【解决方案3】:

      我最近不得不编写一个访问 wiki 并进行一些基本文本抓取的组件。我编写的大多数测试都验证了正确的 HTTP 响应代码。就验证实际资源而言,我将保存已知资源的离线版本并检查算法是否正在收集/处理正确的数据。

      【讨论】:

        【解决方案4】:

        这通常是我会为测试模拟的功能...我不喜欢我的测试依赖于任何外部资源...更糟糕的是,如果它是我无法控制的外部资源(例如 3rd党网站)。

        数据库是少数几个我经常不会模拟的外部资源之一...我使用 DBUnit 代替。

        【讨论】:

          猜你喜欢
          • 2016-03-08
          • 1970-01-01
          • 2017-07-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多