Tak, spotkałem się z ciekawą sytuacją:
W swoim интеграционном teście wysyłam dane w 2 tematy, i muszą być stosowane aplikacji na zamówienie. Najpierw - userTopic, a następnie należy użyć userOrderTopic.
Gdy wysyłam swoje wiadomości w trybie testowym, idą bardzo szybko i w tym samym czasie. Ale czasami kolejność konsumpcji aplikacji różni. (Temat zamówienia użytkownika, a następnie userTopic) że w ogóle narusza mój test.
Znalazłem kilka триков, jak mogłem tego uniknąć - sen przepływu itp. Ale uważam, że to złe rozwiązanie.
Jestem nowy w "procesie" kafki, jak i w przypadku КафкаТестУлами. Czy istnieje jakiś sposób, który mógłby sprawdzić, że wiadomość w temacie wydano/sprawdzić, gdy ta wiadomość nie wydano?
Coś takiego:
//check that message in userTopic was consumed, to have a chance send message to userOrderTopic
KafkaTestUtils.waitUntilBeConsumed(serverBootstrap, "user-consumer", topic, 0, messageToUserTopic)
lub
KafkaTestUtils.getNowConsumedMessage(serverBootstrap, "user-consumer", topic, 0)
P. S. w moim teście integracji nie mam dostępu do producenta/konsumenta.
Lub, być może, w spring.kafka /spring.kafka.test jest jeszcze jedno narzędzie, aby zrobić to prawidłowo?