Почему падают тесты 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 {
    ...
→ Ссылка