Провайдер Pact-JVM тестирует разделение на конечную точку
Быстрый вопрос, возможно ли определить несколько классов на стороне провайдера для тестирования различных взаимодействий на конечной точке. Допустим, провайдер предоставляет API с двумя конечными точками:/api/v1/users
а также /api/v1/friends
, Давайте также предположим, что у нас есть две потребительские службы, каждая из которых определяет договор пакта. потребитель A
использует как API провайдера, так и потребителя B
только потребности /api/v1/users/:id
, Вопрос в том, как определить тест поставщика для каждой конечной точки отдельно?
Запуск тестов в одном тесте означает, что мы должны определить макеты для всех service
/clients
/repository
/так далее. классы на каждого @State
используется с обеих конечных точек - что становится действительно грязным и сложным в обслуживании.
Одно решение или лучше сказать обходной путь, который я нашел, это использовать @State
значение в качестве целевой конечной точки и параметры для переноса всего остального. Но любопытно узнать, пропускаю ли я что-нибудь из документации или есть лучшие практики для этого.
Та же проблема возникает, когда мы определяем несколько версий API, т.е. если мы вводим /api/v2/users
,
Альтернативный вариант - вызывать поставщика не после микросервиса, а после каждой конечной точки этого микросервиса. Так что вместо двух пар consumerFoo -> providerFoo
а также consumerBar -> providerFoo
у нас будет три пары consumerFoo -> providerFoo.users
,consumerBar -> providerFoo.users
,consumerBar -> providerFoo.friends
, Это повышает уровень детализации матрицы зависимостей, но может также внести некоторую путаницу в нее.