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

通过“引用”而不是内容来测试.jar库

  •  0
  • davek  · 技术社区  · 15 年前

    我需要在我的应用程序中使用第三方.jar-lib:不幸的是,这个第三方应用程序的设置方式使得它几乎不可能在我的Windows设备上进行测试(因为它是为一个Unix环境设置的-我会保留详细信息)。因此,我对它进行了重构,以便能够对其进行测试(将结构更改为使用maven/spring,这样可以更灵活地处理属性文件,而无需更改调出接口)。如果新版本编译成相同的.jar名称/version/etc,我可以在本地测试它,然后在“real”.jar中编译以用于生产。这是愚蠢的想法吗?(我有一种强烈的预感,因为我引入了一个非常重要的依赖关系…)。如果是这样,如何更好地测试这个库(例如,不必将我自己的重构更改合并到原始代码中)?

    1 回复  |  直到 15 年前
        1
  •  2
  •   djna    15 年前

    从概念上讲,您已经将第三方JAR细分为两个部分——属性位和其余部分。你用你自己的东西替换属性位,然后继续测试其余的。发布时,您准备一个包,其中包括您测试过的位和您没有的原始属性。在采用这种方法时,您引入了哪些风险?

    1. 您发布的代码不会是您测试的代码——它是一个不同的JAR,尽管经过仔细的处理并不是一个非常不同的JAR——因此,如果您相信自己能够正确地得到它,这可能是一个可接受的风险。
    2. 你没有测试的代码被破坏了。这表明至少需要在真实的平台上进行一些测试。
    3. 在Windows上的测试给出的结果与在Unix上的测试不同。再次指出了一些程度的Unix测试。

    我认为您的appraoch是实用的,至少有一些测试可以在UNIX上执行,可以降低风险。我假设您基于Windows的测试是为了便于开发/调试。我会这样做,但我会尝试构建一个回归测试套件,我可以在Unix上运行,junit测试可以在那里运行。