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

时间:2011-04-14 08:00:22

标签: java junit junit4

我注意到当单元测试退出时,所有生成的线程都会被自动杀死,这与从命令行运行的java程序完全不同。在命令行中,程序不会退出,直到所有非deamon线程退出。

如何使用jUnit测试涉及衍生线程的案例?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

我建议你让你的单元测试shutdown()它的组件,使它返回到测试开始前的状态。在运行的系统中实际上可能不需要这样做,但它允许您多次运行多个测试。

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