Провайдер 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, Это повышает уровень детализации матрицы зависимостей, но может также внести некоторую путаницу в нее.

0 ответов

Другие вопросы по тегам