Я только начал применять тест Pact для моей системы, которая состоит из одного поставщика услуг и Angular внешнего интерфейса в качестве потребителя. Мне удалось настроить обе стороны, поэтому приложение Angular создает (один) файл pact с множеством взаимодействий с несколькими конечными точками службы моего провайдера. В провайдере я теперь сталкиваюсь с проблемой, что мой проверочный тест становится очень большим и чрезмерно сложным, так как мне нужно смоделировать все мои конечные точки в одном тесте со всеми их данными, например:
@Provider("example-backend")
@PactFolder("pacts")
@SpringBootTest(...)
class ComprehensivePactTest {
[...]
@State("healthy")
fun `healthy state`() {
whenever(exampleService.dosomething(any())).thenReturn(exampleResponse)
whenever(otherService.somethingElse()).thenReturn(otherResponse)
}
}
Есть ли способ отделить взаимодействие от файла пакта, чтобы у меня было несколько небольших проверочных тестов в моем провайдере? Например, я хотел бы иметь проверочный тест для всех запросов с путем, начинающимся с "/ example", и второй тест для пути, начинающегося с "/other".
Так что я бы предпочел иметь меньше Целенаправленный проверочный тест, например, так:
@Provider("example-backend")
@PactFolder("pacts")
@SpringBootTest(...)
class ExampleEndpointPactTest {
[... include some filter logic here ...]
@State("healthy")
fun `healthy state`() {
whenever(exampleService.dosomething(any())).thenReturn(exampleResponse)
}
}
@Provider("example-backend")
@PactFolder("pacts")
@SpringBootTest(...)
class OtherEndpointPactTest {
[... include some filter logic here ...]
@State("healthy")
fun `healthy state`() {
whenever(otherService.somethingElse()).thenReturn(otherResponse)
}
}
Или у меня ошибка в мышлении? Спасибо.