首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将这些JUnit 3测试转换为JUnit 4?

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

Stack Overflow用户
提问于 2013-07-30 14:49:14
回答 1查看 1.3K关注 0票数 0

我的公司希望摆脱JUnit 3,只使用JUnit 4,而另一位实习生和我则负责将旧的JUnit 3测试转换为使用JUnit 4约定。但是,我在转换我正在处理的测试文件时遇到了问题。

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

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

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

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

EN

回答 1

Stack Overflow用户

发布于 2013-08-03 20:55:40

我要做的第一件事就是试图说服给我这个任务的人,这是没有必要的。作为一名实习生,我知道这很难,但值得确保的是,那个人明白这是不必要的。

令人信服的事实:

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

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

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

无法发布代码

如果没有代码,在互联网上获得帮助是非常困难的。我能理解你的雇主不想让你贴密码。(但之后他们可能也不希望你发布类和方法名称-你做到了。)幸运的是,还有一种选择。而是创建一个SSCCE。(阅读链接--当你在工作中取得进展时,它会对你有很大的帮助。)此外,对于较小的示例更容易阅读,它将允许您更改类/方法/etc名称,然后您的雇主将不会在网上使用他们的代码。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17950287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档