繁体   English   中英

如何将这些JUnit 3测试转换为JUnit 4?

[英]How can I convert these JUnit 3 tests to JUnit 4?

我的公司希望离开JUnit 3并开始只使用JUnit 4.另一个实习生和我被赋予了将旧的JUnit 3测试转换为使用JUnit 4约定的任务。 但是,我正在转换我正在处理的测试文件时遇到问题。

据我所知,有一个generateTest方法返回一个SSlTest(SSlTest是TestCase的子类)。 返回的SslTest会覆盖runTest。 runTest包含一个try-catch块,它启动两个线程,clientThread和serverThread(这些都是在testfile中定义的Thread的子类)。 看起来实际的测试是在线程内完成的,因为runTest的其余部分用于捕获两个线程的异常。

generateTest由另一个方法generateSuite调用(返回一个TestSuite)。 generateSuite包含一个外部for循环,可以将套件添加到主套件中。 内部for循环使用generateTest为主要套件中的每个套件添加测试。 主套件是该方法返回的内容。

最后,在测试文件的main方法中调用的suite()方法内,设置while循环以使用generateSuite生成套件并将它们添加到更大的套件中。


我在迁移到JUnit 4时找到的唯一指南是更简单的测试用例。 我现在很迷茫,我公司没有其他人知道足够的JUnit 4来帮助我,所以任何提示都会非常感激!

我要做的第一件事就是试图说服谁给了我一个不必要的任务。 我知道实习生很难,但值得确保此人理解这不是必要的。

说服事实:

  • JUnit 4 jar包含junit.framework和org.junit包结构,因此它向后兼容。
  • JUnit已被广泛采用。 他们JUnit项目的所有者非常清楚这一点,并不会要求人们重写所有测试。 换句话说,它们不会仅仅降低兼容性。
  • 实际上试试吧。 认真。 尝试使用JUnit 4 jar运行现有的测试代码。 您将看到是否出现任何编译器错误。 如果你这样做,那些是需要关注的领域。 如果你不这样做,你有很好的证据可以告诉给你任务的人。

这并不意味着你不必改变任何东西。 这意味着您不必更改大部分代码。 如果您有自定义运行程序,则需要使用JUnit 4样式。 您还可能需要classpath suite来收集测试。

将一些测试转换为JUnit 4也很有价值,因此团队中的开发人员可以使用一些示例。 但是将它们全部转换并不能很好地利用时间。

无法发布代码

没有代码,在互联网上获得帮助是非常困难的。 我可以理解你的雇主不希望你发布代码。 (但是他们可能不希望你发布类和方法名称 - 你做了。)幸运的是,还有另一种选择。 改为创建一个SSCCE (阅读链接 - 随着你的工作进展,它会对你有所帮助。)除了更容易阅读的小例子,它还允许你更改类/方法/等名称然后你的雇主不会他们的代码在线。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM