如何使 JUnit 的行为与从命令行运行的 Java 相同

发布于 2024-11-01 05:18:13 字数 114 浏览 0 评论 0原文

我注意到,当单元测试退出时,所有生成的线程都会自动终止,这与从命令行运行的java程序有很大不同。在命令行中,直到所有非守护线程退出后,程序才会退出。

如何使用 jUnit 测试涉及生成线程的情况?

I noticed that when a unit test exits, all the threads spawned are automatically killed, this is quite different from the java program running from command line. In the command line, the program does not exit until all the non deamon threads exit.

How to test the case involving spawned thread using jUnit?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

寄人书 2024-11-08 05:18:13

如果您正在测试的方法返回对其创建的线程的引用,则加入该线程。如果没有,请创建自己的线程来调用被测试的方法并加入该方法。

If the method you are testing returns a reference to the thread it creates, then join on that. If it doesn't, create your own thread to call the method under test and join on that.

你穿错了嫁妆 2024-11-08 05:18:13

我建议您将单元测试 shutdown() 其组件,以便它返回到测试开始之前的状态。这在运行的系统中实际上可能不是必需的,但它允许您多次运行多个测试。

您甚至可能想在开始时拍摄正在运行的线程的快照,并在测试后检查是否有新线程(可能有一些预期的线程,这没有问题)

I would suggest you make your unit test shutdown() its components such that it returns to the state before the test started. This may not be actually required in the running system but it allows you to run multiple tests many times.

You may even like to take a snapshot of the running threads at the start and check after the test that there are no new threads (there may be some expected ones which are okay)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文