Как распределить тесты по классам на стороне поставщика для одного и того же потребителя
У меня есть сценарий, в котором сервис провайдера предоставляет 3 функции. В конце потребителя у меня есть 3 различных класса, чтобы написать тесты для этих 3 функциональных возможностей. Когда сгенерирован файл pact, он охватывает все тесты с одинаковой комбинацией потребитель-поставщик. Все идет нормально.
Когда дело доходит до тестов провайдера, я хотел бы иметь такую же структуру из 3 классов для 3 функций. Но если я делаю это и когда я запускаю тесты из 1-го класса, PACT также пытается искать другие методы в соответствии с файлом pact, и терпит неудачу, потому что другие методы не найдены. Как я могу справиться с этим сценарием.
пример:
ConsumerTestClass1
ConsumerTestClass2
ConsumerTestClass3
все определяют нижеследующий пакт
@Pact (поставщик = ПРОВАЙДЕР, потребитель = ПОТРЕБИТЕЛЬ)
public MessagePact createPactForCareerLevelClassifier (построитель MessagePactBuilder) {}
Теперь предположим, что у каждого класса есть 3 метода тестирования, поэтому в файле pact всего 9
На стороне провайдера у меня есть 3 тестовых класса
ProvdiderTestClass1
ProvdiderTestClass2
ProvdiderTestClass3
ProviderTestClass1 имеет фактический тест с аннотацией @PactVerifyProvider
Теперь, когда я запускаю тесты для ProviderTestClass1, PACT жалуется, что ему не удалось найти методы, соответствующие 6 другим контрактам, которые на самом деле находятся в классах ProvdiderTestClass2 и ProvdiderTestClass3
1 ответ
Похоже, вы не указываете @PactVerifyProvider
состояние, следовательно, он работает все из них.
Вы должны обратиться к этому примеру, где вы можете ясно видеть, что состояние устанавливается с помощью параметра, например, так @PactVerifyProvider('an order confirmation message')
который будет проверять только для взаимодействий Пакта того же описания.