代码之家  ›  专栏  ›  技术社区  ›  Kepboy

外部项目的单元测试

  •  1
  • Kepboy  · 技术社区  · 16 年前

    我试图对人们在单元测试和子(或外部)项目方面所做的工作达成共识。

    希望我能举例说明。我有一个项目p1依赖于另一个项目p2。p2有自己的单元测试和发布周期。P1也有自己的单元测试。问题是,作为p1单元测试的一部分,是否应包括/运行p2的单元测试,还是应仅在p2发布时运行p2单元测试?

    清澈如泥。 基思。

    4 回复  |  直到 16 年前
        1
  •  4
  •   Fuzzy Purple Monkey    16 年前

    当p1运行时,不需要运行p2的测试。如果p2的代码没有更改,那么在期间再次运行测试将没有任何好处。

    如果p2由于p1的测试而中断,那么需要对p2进行更多的单元测试,以确保您有足够的覆盖范围(或者您可能有一个接口问题,这完全是一个不同的问题)。

        2
  •  2
  •   Matthew Farwell    16 年前

    理论上,如果p2的单元测试是好的,那么不需要运行它们。

    但是,如果您确实运行它们,则有一个(可能很小)可能会通过环境差异使它们失败。如果运行它们的成本很低,为什么不呢?但是,如果测试的设置很复杂,您需要一个额外的数据库或其他东西,那么可能不值得为此付出代价。

    您可能需要对使用p2的代码进行集成测试,以测试您所使用的特定功能的行为。如果你使用的是p2,而p2以某种微妙的方式变化,那么你怎么知道呢?如果p2有不同的发布周期,那么这一点尤为重要:您不知道它们破坏了什么:—)

        3
  •  1
  •   eglasius    16 年前

    在执行GET时运行它们。如果正在从源代码控制中实时检索代码,那么也要运行它们。 还请注意,您可能希望像在p1上一样,抛出一些关于p2使用的集成测试。

        4
  •  0
  •       16 年前

    我在客户机和服务器方面也有类似的经验。即客户端与Web服务。两个部件的单元测试都已到位。

    p2测试基于假设p1是实心的。与p1版本对抗是个好主意。但是,运行p2和p1以发现更多潜在问题并不伤人。