위 코드처럼 this.service.getCreateWordBindingResult(addWord, bindingResult) method가 호출될 때 willdReturn으로 지정한 bindingResult가 return되게 하고 하려했으나 given이 제대로 동작하지 않아서 인지 getCreateWordBindingResult method 안에서 result가 존재하지 않아 NullPointerException이 발생하여 테스트가 실패했다.
Test Target
1 2 3 4 5 6 7 8 9 10 11
@PostMapping(value="/word/add", params= {"save"}) public String createWord(@Valid AddWord word, BindingResult bindingResult){ BindingResult result = service.getCreateWordBindingResult(word, bindingResult);
if (result.hasErrors()) { // NullPointerException 발생 return"thymeleaf/word/createWordForm"; }
p.s : 기본 자료형 (int, char)이나 String 등은 any()를 사용하지 않고 그대로 파라미터로 받아도 정상적으로 동작하는 것 같은데 어째서 따로 정의한 클래스만 인식(?) 하지 못해서 willReturn이 먹히지 않고 null이 return 되는지 알 수가 없었다.