一尘不染

Junit-一次运行设置方法

java

我通过几个测试来设置一个类,而不是使用一个@Before我想拥有一个在所有测试之前仅执行一次的设置方法的类。Junit 4.8有可能吗?


阅读 194

收藏
2020-09-08

共1个答案

一尘不染

尽管我同意@assylias的观点,即使用@BeforeClass是经典的解决方案,但并不总是很方便。带有注释的方法@BeforeClass必须是静态的。对于某些需要测试用例实例的测试而言,这非常不便。例如,基于Spring的测试可用于@Autowired在Spring上下文中定义的服务。

在这种情况下,我个人使用setUp()带有@Before注释的常规方法并管理我的自定义static(!) boolean标志:

private static boolean setUpIsDone = false;
.....
@Before
public void setUp() {
    if (setUpIsDone) {
        return;
    }
    // do the setup
    setUpIsDone = true;
}
2020-09-08