2014-01-06 48 views
1

我正在研究一个公共API的应用程序,它已经通过大量JUnit 3测试进行了彻底测试。有一些变化,现在有两个初始配置设置要测试。我想只运行每个配置的所有测试套件,但基于初始条件,现在一小部分api方法的行为不同。我想实现一些注释或者使用假设来切换测试方法,但是我实际上停留在Java 1.4上,所以注释和JUnit 4不可及...像JUnit4所需的JUnit 3假设或可用于Java 1.4的等效技术

任何想法如何从这里进步?由于语义原因,我想避免分裂班级或移动方法。

注意:这些测试不是微不足道的,只是在配置上配置预期结果不起作用。

我当然可以做类似

public testAbc() { 
    if (cond) 
     testAbc0(); 
    else 
     testAbc1(); 
} 

但给我的印象比较难看。

+0

如果您想使用注释,也许您可​​以使用支持将它们移植到1.4的工具之一。请参阅http://stackoverflow.com/questions/1011706/backport-java-5-6-features-to-java-1-4 – Mark

+0

即使您的部署必须以1.4为目标,也可以考虑使用更高版本进行测试(例如[用于测试和主要的不同maven编译器版本](http://stackoverflow.com/questions/1213897/different-maven-compiler-versions-for-test-and-main))。 – Joe

+0

@Joe对不起,以后回答,这实际上是现在的工作原理。 API是用Java 1.4编译的,但测试套件现在在Java 6 VM中运行。请将您的评论添加为答案,以便我可以接受。 –

回答

0

即使您的部署必须以1.4为目标,也可考虑在测试中使用更高版本(例如Different maven compiler versions for test and main)。

这将允许您部署使用1.4 JDK编译的二进制文件,并仍然利用测试框架中的任何后续功能,以及使用当前Java构建体验以进行产品升级。