@WebMvcTest失败,因为正在寻找mongoTemplate bean

时间:2018-06-10 20:31:15

标签: java spring spring-mvc spring-data

我正在尝试运行以下测试,但它失败了,因为它试图查找log2()并出现以下错误:

mongoTemplate bean

我的理解是Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'mongoTemplate' available 图层(或者在这种情况下是data)不应该执行,但它似乎是。

测试

MongoAutoConfiguration.class, MongoDataAutoConfiguration.class

被测试的课程

@RunWith(SpringRunner.class)
@WebMvcTest(value = UserDetailsController.class)
public class UserDetailsControllerTest {

    @Autowired
    private MockMvc mockMvc;

    @MockBean
    UserRepository userRepository;


    @Test
    @WithMockUser
    public void apisAreAccessibleIfAuthenticated() throws Exception {
        mockMvc.perform(get("/user-details"))
                .andExpect(status().is(HttpStatus.OK.value()));
    }

}

2 个答案:

答案 0 :(得分:0)

您正在为UserRepository创建模拟,但您没有为findByUserName方法实现存根。在执行get:

之前,您应该在测试中添加类似的内容

Mockito.when(userRepository.findByUserName(Mockito.any())).thenReturn(new AppUser());

答案 1 :(得分:0)

此答案有助于:https://stackoverflow.com/a/51454688/2214203

简而言之:将详细信息的配置与应用程序主类的配置分开是一种方法。