gpt4 book ai didi

java - Junit 新实例与之前

转载 作者:行者123 更新时间:2023-11-30 10:29:17 27 4
gpt4 key购买 nike

Junit 的行为是为每个测试用例创建一个类的新实例。同样的方式 @Before 在每个测试用例之前执行一次。为什么junit在初始化每个测试用例的全局变量时需要@Before。检查下面的例子。代码1和代码2有什么区别。例如:

代码 1

public class MyTest{
int count = 1;


@Test
public void test1(){
count++;
assertEquals(2, count);
}

@Test
public void test2(){
count++;
assertEquals(2, count);
}
}

代码 2

public class MyTest{
private int count;

@Before
public void before(){
count=1;
}

@Test
public void test1(){
count++;
assertEquals(2, count);
}

@Test
public void test2(){
count++;
assertEquals(2, count);
}
}

最佳答案

您说得对,不需要。你的两个例子都是等价的。

有一种观点认为@Before 在语法上比在字段或构造函数中初始化更漂亮。对于不了解 JUnit 的复杂性的人来说,这也很明显,Before 中的值是为每个测试方法调用设置的。

以下是 Martin Fowler 对此事的看法: https://martinfowler.com/bliki/JunitNewInstance.html

关于java - Junit 新实例与之前,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44080353/

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