Я пытаюсь запустить следующий тест, но он не проходит, потому что пытается найти 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()));
}
}
Тестируемый класс
@RestController
public class UserDetailsController {
private final UserRepository userRepository;
@Autowired
public UserDetailsController(UserRepository userRepository) {
this.userRepository = userRepository;
}
@GetMapping("/user-details")
public AppUser getUserDetails(Principal principal) {
return userRepository.findByUserName(principal.getName());
}
}