Я пишу тесты для своего сервиса Spring Boot. Я использую Wiremock для имитации HTTP-запросов. Мне нужно временно отключить сервер WireMock для одного конкретного теста, чтобы имитировать недоступность внешней службы.
Вот мой текущий тестовый класс:
Я пишу тесты для своего сервиса Spring Boot. Я использую Wiremock для имитации HTTP-запросов. Мне нужно временно отключить сервер WireMock для одного конкретного теста, чтобы имитировать недоступность внешней службы. Вот мой текущий тестовый класс: [code]@SpringBootTest(classes = {ArticleService.class, ArticleServiceTest.TestConfig.class}) @WireMockTest(httpPort = 8080, proxyMode = true) public class ArticleServiceTest {
@Autowired private ArticleService articleService;
@TestConfiguration public static class TestConfig { @Bean @Primary public ArticleServiceConfiguration articleServiceConfiguration() { ArticleServiceConfiguration configuration = Mockito.mock(ArticleServiceConfiguration.class); Mockito.when(configuration.getUri()).thenReturn(URI.create("http://article-service:8080")); return configuration; } }
@Test public void saveArticle() { // This test works well String expectedJson = """ { "title": "Test Title", "content": "Test Content", "creatorId": 1 }""";
@Test public void saveArticleWhenServerIsUnavailable() { // How to disable the wiremock server here? ArticleDto dto = new ArticleDto("Test Title", "Test Content", 1L); assertThrows(ServerUnavailableException.class, () -> articleService.saveArticle(dto)); } } [/code] Так как же мне правильно остановить сервер WireMock для одного теста, оставив его включенным для других?