Макет Mvc для SpringBoot с обработчиком исключений для рекомендаций контроллера и webAppContextSetup - PullRequest
0 голосов
/ 01 мая 2020

У меня есть среда, которая требует, чтобы Mock Mvc создавался с полным WebApplicationContext. Используя эту аннотацию @AutoConfigureMockMvc или эту строку в методе setUp (): MockMvcBuilders.webAppContextSetup().

Я не могу использовать автономную версию контроллера Mock Mvc MockMvcBuilders.standaloneSetup(), поскольку для его работы требуется довольно сложная конфигурация.

Из различных статей я узнал, что по какой-то странной причине Mock Mvc создается без надлежащих настроек для контроллера. В результате отклики полностью различаются для сценария ios, когда обработка ошибок ожидается, но не проводится в тестовой среде.

Интересно, есть ли способ сделать настройку Mock Mvc похожей на Spring? Загрузочное приложение, которое включает обработчики исключений.

Если это невозможно, мне интересно, есть ли способ проверить сценарий ошибок ios, разумно учитывая ограничение.

Я понимаю, что автономная настройка позволяет вручную добавьте совет контроллера через StandaloneMockMvcBuilder.setControllerAdvice(), сделав его простым. К сожалению, я должен придерживаться webAppContextSetup, и DefaultMockMvcBuilder не имеет такого метода.

ОБНОВЛЕНИЕ:

Тесты снабжены следующими комментариями:

@RunWith(SpringRunner.class)
@SpringBootTest(classes = MyApplication.class)
@AutoConfigureMockMvc
@WebAppConfiguration
@ContextConfiguration
@ActiveProfiles("test")
@Transactional
@WithMockUser(username = "test", roles = { "role1" })

Обработчик исключений помечается

@RestControllerAdvice

UPDATE2:

Следующая пометка была добавлена ​​в класс MyApplication

@ComponentScan(basePackages = {"com.xyz", "com.xyz.config"})

, где com.xyz - основной пакет, где лежит класс MyApplication, а com.xyz.config - это пакет обработчика исключений. Это не помогло.

...