Как сделать Spring Cloud Contract сбросить WireMock до или после каждого теста - PullRequest
1 голос
/ 08 марта 2019

Мы пишем приложение Spring Boot и используем поддержку Cloud Contract WireMock для поддержки службы поддержки.Наш тестовый класс помечен следующим образом:

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
@AutoConfigureWireMock(port = 0)
public class Tests...

Это прекрасно работает, за исключением одного: мы обнаружили, что Spring Cloud, по-видимому, не сбрасывает WireMock, в частности, удаление заглушек, между тестами, чтобы тесты былине изолированы должным образом.Конечно, вы можете сделать это самостоятельно с помощью @Before метода, содержащего reset(), но мы задаемся вопросом, является ли это намеренным.Есть ли какая-то опция, которую мы упустили или нужно использовать дополнительную аннотацию?

В конце концов, невозможно определить заглушки в методе @BeforeClass, который был бы пропущен, если бы всегда выполнялся сбросИтак, мы задаемся вопросом, что говорит против того, чтобы делать это из коробки?

1 Ответ

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

Сервер WireMock можно сбросить в любое время, удалив все сопоставления заглушек и удалив журнал запросов. Если вы используете любое из правил JUnit, это произойдет автоматически в начале каждого теста. Однако вы можете сделать это самостоятельно, позвонив на WireMock.reset() в Java или отправив запрос POST с пустым телом на http://<host>:<port>/__admin/reset.

Чтобы сбросить только сопоставления заглушки, оставив журнал запросов без изменений, отправьте DELETE на http://<host>:<port>/__admin/mappings.

Надеюсь, это полезно.

...