如何断言最终满足条件?

时间:2018-11-27 16:53:03

标签: java junit junit5

我正在尝试编写一个JUnit5测试,该测试断言条件最终将在接下来的15秒内满足。我该如何最好地实现呢?

我正在考虑以下问题:

    assertTimeout(ofSeconds(15), () -> {assertThat(condition, is(true));});

但是它应该反复测试条件

1 个答案:

答案 0 :(得分:2)

看看Awaitility,它具有您所需要的功能。 (docs here

@Test
public void updatesCustomerStatus() throws Exception {

  // Publish an asynchronous event:
  publishEvent(updateCustomerStatusEvent);
  // Awaitility lets you wait until the asynchronous operation completes:
  await().atMost(5, SECONDS).until(customerStatusIsUpdated());
  ...
}