在不同的JUnit测试之间共享对象引用

时间:2014-05-05 14:26:00

标签: java junit

我有几个JUnit测试需要一个昂贵的资源(WALA class hierachie)的参考,需要大约30秒才能创建。我想在我的整个测试套件中分享这个参考。

我想到了一个基类的静态成员,它是用@BeforeClass方法懒散地启动的。运行测试后,无论如何都应该确定JVM。

还有其他方法可以实现吗?或者其他任何最佳做法?

1 个答案:

答案 0 :(得分:3)

创建一个显式测试套件(参见this answer)以运行这些测试,并在套件本身上使用@BeforeClass@AfterClass(参见this answer):< / p>

@RunWith(Suite.class)
@Suite.SuiteClasses({Test1.class, Test2.class})
public class MySuite {
    @BeforeClass
    public static void initResource() {
        MyExpensiveResource.init();
    }

    @AfterClass
    public static void disposeResource() {
        MyExpensiveResource.dispose();
    }
}