Могу ли я настроить генерацию теста Spring Cloud Contract Pact для обработки контекста в пути URL - PullRequest
0 голосов
/ 12 марта 2019

У меня есть демонстрационный проект здесь https://github.com/donalthurley/pact-demo, который показывает проблему, с которой я столкнулся.

Общая проблема заключается в том, что я пытаюсь разработать API, соответствующий контракту PACT, в которомВ контракте используется URL-путь, включающий контекст.

API контроллера весенней загрузки отображает запрос без контекста в пути. См. https://github.com/donalthurley/pact-demo/blob/master/src/main/java/com/example/demo/DemoController.java#L22

В договоре PACT такой же запрос указывается сконтекст 'demo', добавленный к пути URL, см. https://github.com/donalthurley/pact-demo/blob/master/src/main/resources/demo-pact.json#L14

Когда pact генерирует модульные тесты, в этом случае он завершается неудачно с 404.

Если контекст удален из контракта PACT, тогдасгенерированные тесты выполнены успешно.

У меня такой вопрос, могу ли я сказать генерации PACT использовать контекст 'demo', чтобы сгенерированные тесты работали?

Этот более ранний ответ Как установить контекстный путь в Spring Boot WebMvcTest предполагает, что это невозможно, но я хотел бы подтвердить это, поскольку я не понимаю, почему это должноне поддерживается.

1 Ответ

1 голос
/ 14 марта 2019

По моему скромному мнению, вы не должны включать контекст в пакт, так же, как ваш контроллер.
Я предполагаю, что вы используете какой-то API-шлюз, поэтому все действия с контекстом должны быть прекращены после того, как вы покинете API-шлюз. На вашем уровне обслуживания контекст уже не имеет значения.

...