如何在WebMvcTest上使用ActiveProfiles和Spring Boot测试?

时间:2018-05-19 03:41:24

标签: java spring spring-boot spring-restcontroller spring-test-mvc

我有一个使用@WebMvcTest测试RestController的单元测试。控制器类自动装配我想要模拟的服务类。我发现我可以使用@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'类型的限定bean

我能够通过在我的Unit Test类中使用@MockBean来进行VotingService来解决它。但是,我想使用NotificationServiceTestConfiguration中的Profile配置,而不必调用mock bean。

有什么想法吗?

0 个答案:

没有答案