假设我有一个名为 MyTest 的测试类。
其中我有三个测试。
public class MyTest {
AnObject object;
@Before
public void setup(){
object = new AnObject();
object.setSomeValue(aValue);
}
@Test
public void testMyFirstMethod(){
object.setAnotherValue(anotherValue);
// do some assertion to test that the functionality works
assertSomething(sometest);
}
@Test
public void testMySecondMethod(){
AValue val = object.getAnotherValue();
object.doSomethingElse(val);
// do some assertion to test that the functionality works
assertSomething(sometest);
}
Run Code Online (Sandbox Code Playgroud)
有什么办法可以使用 的值anotherValue,该值是在第一个测试中通过其设置器设置的,在第二个测试中。我正在使用它来测试数据库功能。当我在数据库中创建一个对象时,我想获得它的 GUID,这样我就可以在以后的测试方法中使用它来进行更新和删除,而不必对 GUID 进行硬编码,从而使其与将来的使用无关。
您在两个测试之间引入了依赖关系。JUnit 故意不支持测试之间的依赖关系,也无法保证执行的顺序(测试套件中的测试类除外,请参阅我对Has JUnit4 开始支持测试顺序?是故意的吗?)的回答。所以你真的想在两个测试方法之间建立依赖关系:
我个人更喜欢 3,因为:
但是,如果您的设置非常昂贵,您可以将其视为集成测试并只接受依赖项,以节省时间。
| 归档时间: |
|
| 查看次数: |
24026 次 |
| 最近记录: |