컨트롤러 레이어에 대한 단위 테스트 케이스를 작성하고 있습니다. 나는 Spring SecurityContextHolder로부터 사용자를 얻고있다. 테스트 케이스를 실행할 때 스프링 보안 컨텍스트를 조롱하는 방법을 모르기 때문에 널 포인터 예외가 발생합니다.MockMVC를 사용하는 모의 SpringContextHolder
아래 코드는 어떻게 작성합니까?
컨트롤러 Methhod :
@RequestMapping(method = RequestMethod.POST)
public void saveSettings(@RequestBody EmailSettingDTO emailSetting) {
User user = ((CurrentUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal()).getUser();
settings.saveUserEmailSetting(user, emailSetting);
}
내 테스트 케이스 :
@Test public void testSaveSettings() throws Exception {
mockMvc.perform(post(BASE_URL).content(this.objectMapper.writeValueAsString(emailDto))
.contentType(MediaTypes.HAL_JSON)).andExpect(status().isOk());
}
http://stackoverflow.com/questions/15203485/spring-test-security-how-to-mock-authentication – VinayVeluri