我从JUnit开始,不理解注释@Test
和@BeforeClass
。
我有以下代码:
public class Toto {
@BeforeClass
public static void setupOnce() {
final Thread thread = new Thread() {
public void run() {
Main.main(new String[]{"-arg1", "arg2"});
}
};
try {
thread.start();
} catch (Exception ex) {
}
}
为什么@BeforeClass
?在这种情况下,setupOnce()
和线程是什么?
我们应该在每次Java测试之前添加@Test
吗?
所以如果我有30个Java测试,我应该在每个Java文件中都有@Test public void test()
吗?
答案 0 :(得分:16)
@BeforeClass Annotation标识一个方法,该方法应该在此实现单元中包含的任何测试用例之前执行。在这种特殊情况下,此测试类包含一些线程资源的初始化,该资源需要在测试期间在后台执行。
JUnit定义了四个生命周期事件:
在我的应用程序中,我通常使用@BeforeClass注释方法执行昂贵的初始化,而真正昂贵的初始化甚至只对整个测试套件执行一次。但这个“事件”是基于一些黑客加速了我的发展。
答案 1 :(得分:0)
在下面的网址中,您将了解以下主题-
如何在JUnit中定义测试?
https://onlyfullstack.blogspot.com/2019/02/annotations-used-in-junit.html