使用@BeforeClass和在JUnit 4 Java中使用实例或静态变量有什么区别?

mko*_*mko 7 java unit-testing junit4

我是单元测试的新手.关于@BeforeJUnit 4中使用注释的目的.我只是不知道使用它的意义:

public class FoodTestCase {
    static private Food sandwich;

    @BeforeClass
    public static void initialise(){
        sandwich = new Sandwich();    
    }

}
Run Code Online (Sandbox Code Playgroud)

VS

public class FoodTestCase {
    static private Food sandwich = new Sandwich();

}
Run Code Online (Sandbox Code Playgroud)

有什么不同?

Bit*_*man 2

我认为这个想法是这样的:你使用@AfterClass来释放资源。那么用 @BeforeClass 来获取它们是合乎逻辑的。因为让开发人员猜测他需要使用静态块可能不是一个好主意。