Как я могу использовать ActiveProfiles с тестами Spring Boot с WebMvcTest? - PullRequest
0 голосов
/ 19 мая 2018

У меня есть модульный тест, который тестирует RestController с использованием @WebMvcTest.Класс контроллера автоматически связывает класс обслуживания, который я хотел бы высмеять.Я обнаружил, что могу использовать @Profile и @Configuration, чтобы создать класс конфигурации для указания основных bean-компонентов, используемых при активном профиле.Я попытался добавить активный профиль в свой класс модульного тестирования, но он говорит, что не смог загрузить ApplicationContext.Я не уверен, как я могу это сделать при использовании @WebMvcTest.

@ActiveProfiles("mockServices")
@RunWith(SpringRunner.class)
@WebMvcTest(VoteController.class)
public class VoteControllerTest {
...

Кажется, я могу подойти к этому неправильно.Любая помощь приветствуется.

Редактировать:

Вот мой класс конфигурации:

@Profile("mockService")
@Configuration
public class NotificationServiceTestConfiguration {

    @Bean
    @Primary
    public VotingService getVotingService() {
        return Mockito.mock(VotingService.class);
    }
}

Ошибка, которую я на самом деле получаю:

org.springframework.beans.factory.NoSuchBeanDefinitionException: Нет подходящего компонента типа 'VotingService'

Мне удалось решить его с помощью @MockBean для VotingService в моем классе модульного теста.Однако я хочу использовать конфигурацию профиля, которая есть в NotificationServiceTestConfiguration, без необходимости вызывать фиктивные компоненты.

Есть мысли?

...