2017-01-25 2 views
0

У меня есть сценарий, когда служба моего провайдера предоставляет 3 функции. В конце концов у меня есть 3 разных класса для написания тестов для этих 3 функций. Когда создается файл pact, он охватывает все тесты с одинаковой комбинацией между потребителем и поставщиком. Все идет нормально.Как проводить тесты, распределенные между классами в конце провайдера для одного и того же пользователя

Когда дело доходит до тестирования поставщика, я хочу иметь ту же структуру из 3 классов для 3 функциональных возможностей. Но если я это сделаю, и когда я запускаю тесты из 1-го класса, PACT также пытается найти другие методы в соответствии с файлом pact и не сможет найти другие методы, которые не найдены. Как я могу справиться с этим сценарием.

пример:
ConsumerTestClass1
ConsumerTestClass2
ConsumerTestClass3

все Определим НИЖЕ Пакт
@Pact (поставщик = Provider, потребитель = ПОТРЕБИТЕЛЬСКАЯ)
общественного MessagePact createPactForCareerLevelClassifier (MessagePactBuilder строитель) { }

Теперь давайте говорить каждый класс имеет 3 метод испытаний, поэтому договор файл всего будет иметь 9

На стороне провайдера у меня есть 3 тестовых классов
ProvdiderTestClass1
ProvdiderTestClass2
ProvdiderTestClass3

ProviderTestClass1 имеет эксплуатационное испытание с аннотацией @PactVerifyProvider
Теперь, когда я запускаю тесты для ProviderTestClass1, PACT жалуется, что он не смог найти какие-либо методы, соответствующие 6 другим контрактам, которые фактически находятся в ProvdiderTestClass2 и ProvdiderTe stClass3 классы

+1

Это звучит так, как будто вы пытаетесь одновременно запустить все взаимодействия с пактом, вместо того, чтобы просто запускать тот, который вам нужен для этого конкретного теста. Если вы можете предоставить дополнительную информацию или потенциально пример кода/диаграмму, это поможет мне понять, что вы пытаетесь выполнить. –

+0

Я добавил пример, посмотрим, поможет ли это –

ответ

0

Похоже, вы не указываете на @PactVerifyProvider состояние, поэтому оно работает все.

Вы должны обратиться к this example, где вы можете четко видеть, что состояние задается с помощью параметра @PactVerifyProvider('an order confirmation message'), который будет проверять только для взаимодействий Пакта того же описания.

Смежные вопросы