小编Nik*_*ösl的帖子

运行注入代码的库的集成测试的正确方法是什么?

我有两个软件组件:我的应用程序和一个库(由我的公司拥有,但另一个团队拥有),由应用程序使用.该库是某些服务的客户端库,可执行HTTP请求.该库还将HTTP响应映射到应用程序的内部表示.这是通过应用程序将映射类注入库来完成的.

我已经为映射类和应用程序进行了单元测试,而客户端库调用总是被模拟.

现在我正在考虑集成测试库,我不确定最好的方法是什么:

  • 模拟库调用,只检查是否使用正确的参数调用它

    • 亲:如果图书馆的内部改变(有一个不间断的改变),我不必调整我的测试.
    • Con:映射类未经过集成测试.我无法确定库是否已正确配置,或者映射器从库中获取的参数是我期望的.
  • 只模拟库完成的HTTP调用

    • Pro:测试映射类和库的配置(如果我正确配置).
    • Con:我需要弄清楚库的内部,并检查每个测试用例的HTTP调用是什么样的.此外,如果库升级到新版本的服务,我还需要调整所有HTTP模拟,实际上不应该关心库内部如何工作.
  • 在测试期间,使用内存中的伪(=虚拟)实现替换库中的HTTP调用

    • 亲:一切都经过测试+测试对图书馆的变化具有弹性.
    • Con:这是实现和维护虚假实现的努力.根据服务的不同,这可能意味着重建库中服务的功能.谁应该对假策略负责(实施+维护)?我的团队或拥有图书馆的团队?

我赞成最后一点,但鉴于我们图书馆的内部很少改变,我不确定假的策略是否值得付出努力.

你对此有何看法?你能想到另一种解决方案吗?

integration-testing automated-tests dependency-injection

6
推荐指数
1
解决办法
182
查看次数