【问题标题】:Integration testing with dependency on outside service依赖外部服务的集成测试
【发布时间】:2011-10-26 16:56:42
【问题描述】:

我目前正在为我的系统编写集成/功能测试。部分功能是通过 http(我运行的另一个系统)访问 Web 服务。

我应该如何设置 Web 服务的测试实例以进行良好的功能测试?我想让我的系统使用实时生产数据针对此服务运行。

Web 服务是否应该是一个独立的实例,它始终具有我手动重新加载的实时生产数据(可能会在我每次启动它的实例时重置)?

是否应在每次测试时设置和拆除 Web 服务?

处理这种情况有哪些常见做法?

【问题讨论】:

    标签: unit-testing integration-testing functional-testing fixtures


    【解决方案1】:

    首先请确保您知道Functional TestingIntegration Testing 之间的区别。无需进行集成测试所需的主要工作(实例化 Web 服务、访问数据库),您就可以进行非常好的功能测试。基本上Mocking 技术甚至可以很好地模拟数据层响应和 Web 服务行为(我相信对于大多数测试用例来说,像 HTTP 作为传输 这样的细节可以忽略)

    对于这样的集成测试,我建议使用单独的 SIT 环境,其中包括单独的 Web 服务和数据库。

    Web 服务是否应该是一个始终拥有实时生产数据的独立实例 我手动重新加载(可能每次我启动它的实例时都会重置)?

    是的,它应该是完全独立的,但可以手动生成/准备数据。例如,您可以准备一些数据集来测试一些预定义的测试用例,这可以是在实际测试运行之前部署到 SIT 数据库实例然后在测试 TearDown 中清理的测试数据集。

    是否应在每次测试时设置和拆除 Web 服务?

    是的,测试应该彼此隔离,因此不应该以任何方式影响每个测试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-08
      • 2021-12-03
      • 1970-01-01
      • 2020-11-30
      • 2021-04-25
      • 2010-12-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多