JUnit测试未按顺序运行

道伊

我正在使用JUnit 5测试DynamoDB,并且有一个设置方法带有@BeforeAll注释,其中我在数据库中插入了3个项目,而一个带有@AfterAll注释的设置方法是在所有测试运行后删除数据库中的项目。

@Test
@Order(1)
public void addNewCar() {
    repository.save(new Car("d"));

    assertThat(repository.count()).isEqualTo(4);
}

我先插入一个新项目,然后删除一个项目:

@Test
@Order(2)
public void deleteCar() {
    repository.deleteById("a");

    assertThat(repository.count()).isEqualTo(2);
}

但是,第一次测试失败(计数是3而不是4),因为在测试编号2中删除的汽车已经在测试编号1中移出了。

我可以通过使用@BeforeEach和AfterEach注释设置和清理数据库方法来运行来解决此问题,但我很好奇为什么我的项目已在测试1中删除了?

约翰内斯林克

您的测试类还需要一个注释:

@TestMethodOrder(OrderAnnotation.class)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章