2017-07-03 64 views
6

Obecnie pracuję nad projektem, w którym mamy wdrożenie kafka w architekturze mikro-usług. Czy udało Ci się stworzyć przypadki testowania kontraktów dla mS do interakcji z kafka przy użyciu pact-jvm?Jak wdrożyć testowanie kontraktowe, gdy kafka jest zaangażowany w architekturę mikroserwisu?

Moja realizacja to mikroserwis1 publikuje komunikat do klienta REST, który z kolei publikuje wiadomość do tematu Kafki. microservice2 używa metody GET do pobierania wiadomości z tematu Kafki.

Odpowiedz

10

Pact-JVM obsługuje paczki komunikatów, które hermetyzują komunikat, który jest zużywany (w jedną stronę) na pewien mechanizm, zwykle kolejkę komunikatów. Chodzi o to, aby przetestować kod konsumenta, który może skonsumować komunikat za pomocą testu konsumenckiego, a następnie sprawdzić, czy dostawca generuje odpowiedni komunikat. Rzeczywista kolejka komunikatów nie jest używana w teście.

Contract over a message queue

ten został pierwotnie opracowany do zastosowania testów kontraktowych dla mikro-usług komunikujących się wiadomość kolejkę Kafka.

Testy są przeprowadzane na dwóch etapach, podobnie jak testy Paktu Pytań-Odpowiedzi, z wyjątkiem sytuacji, gdy Konsument odczytuje wiadomość podczas testu Paktu Konsumenta i jeśli zostanie pomyślnie zapisany plik Paktu. Następnie wywoływany jest kod dostawcy w celu wygenerowania komunikatu, który jest porównywany z tym, co znajduje się w pliku paktu.

enter image description here

Odpowiednie odcinki docs Pakt-JVM są:

+0

Dzięki @ ronald-holshausen można również wskazują na sekcja konsumenta JVM, w której umowa Czy generowanie jest generowane? –

+0

Oczywiście, tutaj jest link do testu JUnit: https://github.com/DiUS/pact-jvm/blob/master/pact-jvm-consumer-junit/README.md#consumer-test-fora-a- komunikat-konsument –