gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 06:51:44 26 4
gpt4 key购买 nike

我的公司希望摆脱 JUnit 3 并开始仅使用 JUnit 4。另一名实习生和我的任务是将旧的 JUnit 3 测试转换为使用 JUnit 4 约定。但是,我在转换我现在正在处理的测试文件时遇到问题。

据我所知,有一个generateTest方法返回SSlTest(SSlTest是TestCase的子类)。返回的 SslTest 覆盖 runTest。 runTest 包含一个 try-catch block ,它启动两个线程:clientThread 和 serverThread(它们都是测试文件中定义的 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 也很有值(value),因此团队中的开发人员可以使用一些示例。但将它们全部转换并不能很好地利用时间。

关于无法发布代码

如果没有代码,在互联网上获得帮助是极其困难的。我可以理解你的雇主不希望你发布代码。 (但是他们可能也不希望您发布类和方法名称 - 您确实这样做了。)幸运的是,还有另一种选择。创建 SSCCE反而。 (阅读链接 - 当您在工作中取得进步时,它将对您有很大帮助。)此外,为了更容易阅读较小的示例,它将允许您更改类/方法/等名称,然后您的雇主将不会在线提供他们的代码。

关于java - 如何将这些 JUnit 3 测试转换为 JUnit 4?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17950287/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com