我已经使用 JUnit 几年了,我发现了许多测试中隔离不完整的例子。
我开发的大多数测试都遵循相同的结构
class ClassToTestTest {
// Attributes
private ClassToTest objectToTest;
// Methods
@Before
public void setup() {
objectToTest = new ClassToTest();
}
@Test
public void test1() {
//do something
Assert...
}
@Test
public void test2() {
//do something
Assert...
}
}
Run Code Online (Sandbox Code Playgroud)
测试对象(不是 ClassToTest 对象,而是执行测试的对象)的内部状态在其属性中。如果 setup() 或 teardown() 方法存在任何缺陷,则 objectToTest 的某些内部状态可能会潜入其他测试。
只是想知道,没有共享状态会更好吗?你没有属性
class ClassToTestTest {
// Attributes
// No attributes, no internal state
// Methods
@Before
public void setup() {
objectToTest = new ClassToTest();
}
@Test
public void test1() …
Run Code Online (Sandbox Code Playgroud)