У меня есть интеграционный тест для системы, которая использует очередь (nats) и mongodb.
Мой тестовый сценарий заключается в публикации нового значения в очереди, а затем проверьте, правильно ли оно было прочитано и сохранено в приложении.
В настоящее время перед логикой утверждения я использую уродливый сон:
Thread.sleep(500)
Интересно, есть ли лучший способ ожидания условия?
Мой код подтверждения:
val devicesResponseBody = webTestClient.get().uri("/devices")
.exchange()
.expectStatus()
.isOk
.expectBody()
.returnResult()
.responseBody
val devices =
objectMapper.readValue<DevicesResponse>(devicesResponseBody, DevicesResponse::class.java)
assertThat(
DevicesResponse(
listOf(
DeviceResponse(
//...
)
)
)
).isEqualTo(devices)
Может быть, я мог бы наблюдать за потоком событий в БД в Монго?