小编典典

上课前的Junit(非静态)

java

是否有任何最佳实践让Junit在测试文件中执行一次功能,并且它也不应该是静态的。

喜欢@BeforeClass在非静态功能?

这是一个丑陋的解决方案:

@Before void init(){
    if (init.get() == false){
        init.set(true);
        // do once block
    }
}

好吧,这是我不想做的事情,我正在寻找集成的junit解决方案。


阅读 222

收藏
2020-09-18

共1个答案

小编典典

如果您不想为一次初始化设置静态初始化程序,并且不打算使用JUnit,请查看TestNG。TestNG通过各种配置选项支持非静态的一次性初始化,所有配置选项均使用注释。

在TestNG中,这等效于:

@org.testng.annotations.BeforeClass
public void setUpOnce() {
   // One time initialization.
}

拆解

@org.testng.annotations.AfterClass
public void tearDownOnce() {
   // One time tear down.
}

对于等同于JUnit 4 @Before和的TestNG @After,可以分别使用@BeforeMethod@AfterMethod

2020-09-18