Spring не попадает в ControllerAdvice в интеграционных тестах

#java #spring

#java #spring

Вопрос:

У меня есть webAppContextSetup , с помощью которого я устанавливаю контекст приложения. Некоторые ответы предполагают, что standaloneSetup у которого есть установщик для добавления моего класса ControllerAdvice.

Я пробовал другие ответы, где некоторые предлагали добавить ComponentScan в конфигурацию тестирования. Однако у меня это не сработало.

Во время отладки теста код не попадает в обработчик. Но когда я проверяю журналы UAT, обработчик попадает.

Может кто-нибудь, пожалуйста, помочь? Я нахожусь на своем мобильном телефоне, поэтому не смог добавить код. Это не приложение для загрузки Spring.

Ответ №1:

Вы пробовали использовать @RunWith(SpringRunner.class) и @WebMvcTest(*Your class name here.class*) ?

 @RunWith(SpringRunner.class)
@WebMvcTest(*Your class name here.class*)
public class ExceptionHandlerIntegrationTest {
    ....
}
  

Когда вы запускаете тестовый класс с этими аннотациями, класс должен запускаться через spring boot и автоматически настраивать любые параметры, избегая какой-либо дополнительной настройки (ComponentScan и т.д.).

Это помогло бы, если бы вы прикрепили какой-нибудь исходный код, но я предполагаю, что это могло бы решить вашу проблему, я предполагаю, что вы используете Junit в качестве бегуна для этого, поэтому эти аннотации, скорее всего, не будут работать с другими фреймворками.

Я использовал это для тестирования класса обработчика исключений в моем api, и он отлично сработал. Надеюсь, это поможет!

Комментарии:

1. Это не приложение для загрузки Spring. Я буду прикреплять исходный код.

2. Ах, хорошо, тогда это сложнее, spring, безусловно, упрощает задачу.