我的公司希望脱离JUnit 3并开始只使用JUnit 4.另一位实习生和我已被赋予将旧版JUnit 3测试转换为使用JUnit 4约定的任务。但是,我正在转换我正在处理的测试文件。如何将这些JUnit 3测试转换为JUnit 4?
从我可以告诉,有一个generateTest方法返回一个SSlTest(SSlTest是TestCase的一个子类)。返回的SslTest覆盖runTest。 runTest包含一个启动两个线程的try-catch块,clientThread和serverThread(这两个线程都是在测试文件中定义的Thread的子类)。看起来实际的测试是在线程内部完成的,因为runTest的其余部分用于从两个线程捕获异常。
generateTest被另一个方法generateSuite调用(返回一个TestSuite)。 generateSuite包含一个外部for循环,它将套件添加到主套件。内部for循环使用generateTest将测试添加到主套件中的每个套件。主套件是该方法返回的内容。
最后,在测试文件的main方法中调用的suite()方法内部,设置while循环以使用generateSuite生成套件并将它们添加到更大的套件中。
我发现迁移到JUnit 4的唯一指南是简单得多的测试用例。我现在很迷茫,我公司没有人知道足够的JUnit 4来帮助我,所以任何提示都会非常感谢!
你擅长叙述代码:) ..你可以发布代码本身吗? – Tala
你说“generateTest ...返回一个SSITest” - 你的意思是它返回一个类的实例?还是它写了一个类的代码?我知道JUnit 3和4之间的主要区别在于3使用了“test ...”作为其测试方法的名称,而4使用了“@Test”注释。你没有提到你的3种方法的“测试...”方法;他们没有他们吗?他们不遵循惯例,还是我错过了什么? – arcy
1.我不确定是否可以自己发布代码,因为它是公司代码,我不想陷入困境。 2.是的,它返回一个类的实例。有一个在clientThread中调用的“test ..”方法。 – gchan