Весеннее пробное тестирование в Pact

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

Кажется, документация поддерживает запуск приложения провайдера и проверку контрактов на работающем сервере.

Я предпочитаю не делать этого. Во-первых, мне нужно курировать базу данных с правильной информацией для каждого договора, что по меньшей мере больно. Во-вторых, запуск приложения будет хлопотным - я уже говорил, что это монолит? - наконец, есть ПОЧТЫ, которые изменяют состояние базы данных и делают тестовый запуск хрупким.

Я хочу провести тестирование стиля mockMvc с помощью пактов. Я хотел бы издеваться над моими службами и просто проверить конечную точку, что, я думаю, должно быть проверено в этом случае.

Как я могу добиться этого с Pact?

3 ответа

Pact-JVM теперь поддерживает тесты Spring mockmvc для проверки поставщика Spring или Springboot. См. https://github.com/DiUS/pact-jvm/tree/master/pact-jvm-provider-spring

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

Да, вы можете достичь этого с помощью PACT, однако у меня есть то же мнение с Cotnic, что это превосходит цель иметь PACT на стороне поставщика. Основная цель PACT - убедиться, что ваш сервер как поставщик работает в соответствии с соглашением (PACT). Поэтому, на мой взгляд, правильный способ использовать PACT в качестве КОНТРАКТА - запустить его на полностью развернутом сервере и использовать @State для "подготовки" сервера (БД, запуска приложений и т. Д.)

В любом случае, если вы используете Spring, вы, вероятно, можете взглянуть на этот пример для использования Pact с MockMvc.

https://github.com/DiUS/pact-jvm/tree/master/pact-jvm-provider-spring

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