Java 如何断言条件最终得到满足?

Java 如何断言条件最终得到满足?,java,junit,junit5,Java,Junit,Junit5,我正在尝试编写一个JUnit5测试,它断言在接下来的15秒内,条件最终被完全满足。我如何才能最好地实现这一点 我在想这件事: assertTimeout(ofSeconds(15), () -> {assertThat(condition, is(true));}); 但是它应该反复测试条件看看,它具有您正在寻找的功能。() 超出范围:你知道,这样的测试最终会导致CI失败。更好的方法是在不使用任何timerfunction的情况下测试事件。但我不知道你的用例,我只是建议你记住这一

我正在尝试编写一个JUnit5测试,它断言在接下来的15秒内,条件最终被完全满足。我如何才能最好地实现这一点

我在想这件事:

    assertTimeout(ofSeconds(15), () -> {assertThat(condition, is(true));});
但是它应该反复测试条件

看看,它具有您正在寻找的功能。()


超出范围:你知道,这样的测试最终会导致CI失败。更好的方法是在不使用任何timerfunction的情况下测试事件。但我不知道你的用例,我只是建议你记住这一点。
@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());
  ...
}