gpt4 book ai didi

java - 如何在 JUnit 中实例化共享资源

转载 作者:行者123 更新时间:2023-11-30 06:00:09 25 4
gpt4 key购买 nike

我注意到 jUnit 为每个被测试的方法运行我的测试类的构造函数。这是一个例子:


public class TestTest {
protected BigUglyResource bur;
public TestTest(){
bur=new BigUglyResource();
System.out.println("TestTest()");
}
@Test
public void test1(){
System.out.printf("test1()\n");
}

@Test
public void test2(){
System.out.printf("test2()\n");
}
@Test
public void test3(){
System.out.printf("test3()\n");
}
}

给出以下结果:

TestTest()test1()TestTest()test2()TestTest()test3()

调用 BigUglyResource 的构造函数太耗时,我宁愿只构建一次。我知道您可以使用 @BeforeClass 来运行一次方法,但 @BeforeClass 仅适用于静态方法。静态方法无法访问上面示例中的 BigUglyResource 等类属性。除了构建单例之外,还有哪些选择?

最佳答案

您不能将 BigUglyResource 声明为静态的吗?这就是我通常的做法。

private static BigUglyResource bur;

@BeforeClass
public static void before(){
bur=new BigUglyResource();
}

关于java - 如何在 JUnit 中实例化共享资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1793623/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com