Почему падают тесты WebMvcTest для проверки входных значений?
Простой тест, но если добавить еще тесты где возвращается 200, то он будет падать, если запустить по одному то работают. Может нужно очищать контектст при запуске каждого теста? Тогда как? Закинул из всех методов в один, все отрабатывает, но если по разным тестам, то нет
@WebMvcTest(TestController::class)
@ExtendWith(SpringExtension::class)
internal class TestController {
@Autowired
lateinit var mockMvc: MockMvc
@Autowired
lateinit var objectMapper: ObjectMapper
@MockBean
lateinit var testService: testService
@Test
fun `test with invalid inn feedback input`() {
val body = objectMapper.writeValueAsString(testInput)
mockMvc.perform(
post("/v1/test")
.contentType("application/json")
.content(body)
).andExpect(status().isBadRequest)
}
}
Ответы (1 шт):
Автор решения: Andrei Popruha
→ Ссылка
Кажется, у вас есть неоднозначность между тестами, использующими одну и ту же заглушку.
Вы можете попробовать сбросить состояние заглушек перед каждым тестом, используя аннотацию @DirtiesContext:
@WebMvcTest(TestController::class)
@ExtendWith(SpringExtension::class)
@DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
internal class TestController {
...