我是 Java 新手,正在使用 JUnit 进行单元测试。我很好奇,如果只是为了避免重复代码,在测试类开始时仅初始化每个特定测试副中的对象一次是否是不好的做法。例如:
public class MyTest {
@Test
public void defaultObj() {
Obj d = new Obj();
String name = "";
assertEquals(name, d.getName());
}
对比
public class MyTest {
Obj d = new Obj();
String name = "";
@Test
public void defaultObj() {
assertEquals(name, d.getName());
}
同样,假设我有多个单元测试,并且我会在每个单元测试中调用 Obj d = new Obj();
。我感觉后者更合适。然而,我认为前者更明确,因为每个 intiailizaton 都是本地化的(对吗?),并且如果我有多个 Obj
构造函数,我一开始的初始化将开始堆叠。
这里有最佳实践习惯吗?或者可以接受吗?
最佳答案
您能做的最好的事情就是在类级别声明要测试的对象(在本例中为 Obj
)。然后,调用 @Before
方法内的构造函数。
最好在方法内声明 name
属性,因为我认为它不会在每个方法中使用。
public class MyTest {
private Obj d;
@Before
public void defaultObj() {
d = new Obj();
}
@Test
public void defaultObj() {
String name = "";
assertEquals(name, d.getName());
}
}
关于java - 单元测试中的初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46881371/