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

标签 java junit

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

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

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

最佳答案

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

@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();
    }
}

关于java - 在不同的 JUnit 测试之间共享对象引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23474905/

相关文章:

java - Java中的ArrayList新手错误

Controller 休息服务的 Spring Junit 测试用例

java - 如何使用 runlistener 创建 JUNIT 报告?

java - 在 PODAM 7.0.0 中创建递归对象时出现 PodamMockeryException

java - Java 中的数据库后端 webapp 测试 [需要工具]

java - 如何访问单独类中的方法

java - Apache Flink : aligning watermark among parallel tasks

java - 初始化所有 junit 测试用例都可以使用的对象的最佳方法

java - 嵌入式 jetty IllegalStateException : Committed

java - 如何让 netbeans 停止手持?