【问题标题】:JUnit tests not running in orderJUnit 测试未按顺序运行
【发布时间】:2020-04-17 09:20:49
【问题描述】:

我正在使用 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 中被删除了?

【问题讨论】:

    标签: unit-testing testing junit amazon-dynamodb junit5


    【解决方案1】:

    你的测试类也需要一个注解:

    @TestMethodOrder(OrderAnnotation.class)
    

    【讨论】:

      猜你喜欢
      • 2012-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-23
      • 2020-03-25
      • 1970-01-01
      相关资源
      最近更新 更多