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

时间:2009-10-28 08:13:53

标签: java jar

我需要在我的应用程序中使用第三方.jar lib:不幸的是,这个第三方应用程序的设置方式使我几乎无法在我的Windows框上进行测试(因为它是为unix环境设置的 - 我我会遗漏细节。所以我重构它以便能够测试它(改变结构以使用maven / spring,因此属性文件的处理更灵活,而无需更改调出接口)。如果新版本编译为相同的.jar名称/版本/等。我可以在本地测试它,然后在“真实”.jar中进行编译以进行生产。这是愚蠢的想法吗? (我有一种强烈的预感,因为我引入了一个非平凡的依赖......)。如果是这样,我怎样才能更好地测试这个库(例如,不必将我自己的重构更改合并到原始代码中)?

1 个答案:

答案 0 :(得分:2)

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

  1. 你发布的代码不是你测试的代码 - 它是一个不同的JAR,虽然仔细的过程而不是一个非常不同的JAR - 所以如果你相信自己做对了,这可能是一个可接受的风险。
  2. 您未测试的代码已损坏。这表明在真实平台上至少需要进行一些测试。
  3. Windows上的测试给出了与Unix测试不同的结果。再次指出了一定程度的Unix测试。
  4. 我认为你的appraoch是实用的,并且至少可以在Unix上执行一些测试,从而减轻风险。我假设您的基于Windows的测试是为了便于开发/调试。我会这样做,但我会尝试构建一个可以在Unix上运行的回归测试套件 - 可以在那里运行JUnit测试。