运行时问题,而等待的时间很短,这在分布式系统中非常常见。为了弥补等待测试断言太长时间的需要,有一个叫做
Awaitility
.
有了这个,您基本上可以通过多次查询断言来进行更聪明的等待,以一定的间隔,直到达到给定的超时(以及更多)。
关于您的示例,请尝试以下操作:
Awaitility.await()
.pollInterval(new Duration(1, TimeUnit.SECONDS))
.atMost(new Duration(10, TimeUnit.SECONDS))
.untilAsserted(() ->
User user1 = userService.findbyId("1234");
assertThat(user1.getName()).isEqualTo(user.getName());
关于问题的另一部分,在集成测试中,实际上可以对
Redis
或者,如果您有一个容器化的集成测试(例如Docker),您可以对它发出一些第一个请求,或者
wait for a certain condition
在开始测试之前。