나는 서비스 수준 클래스에서 사용하고있는 공용 메서드로 일반 도우미 클래스를 가졌다. 서비스 클래스에 대한 테스트를 작성하고 메서드 중 하나에 대해이 도우미 클래스를 모의하려고하면 메서드 내에서 모든 행을 실행합니다. 이 메소드 내부의 코드가 더 복잡하기 때문에 메소드로 도우미 클래스를 모의하고 싶어서 헬퍼 클래스 메소드의 모든 세부 사항을 처리 할 필요가 없습니다.Mockito로 조롱하는 도우미 클래스
서비스 클래스
class HistoryServiceImpl implements CaseHistory {
@Override
public List<CaseHistoryDto> getCaseHistory(Individual member, Individual provider) {
MemberUtil memberUtil = new MemberUtil();
List<CaseHistoryDto> caseHistoryDtoList = new ArrayList<CaseHistoryDto>();
List<CaseHistory> caseHistoryList = caseDetailDao.fetchCaseHistory(member.getId(), provider.getId());
for(CaseHistory caseHistory : caseHistoryList) {
CaseHistoryDto caseHistoryDto = new CaseHistoryDto();
caseHistoryDto.setMemberInfo(memberUtil.getMemberInfo(member, caseHistory.getCreateDate()));
caseHistoryDtoList.add(caseHistoryDto);
}
return caseHistoryDtoList;
}
}
당신의 모의 객체가 임의의 장소에서 사용되고 있지 않습니다 때문에 테스트 클래스
Class HistoryServiceTest {
@Mock MemberUtil memberUtil;
@InjectMocks private HistoryServiceImpl historyServiceImpl = new HistoryServiceImpl();
@Test
public void testGetCaseHistory() {
//why this line going inside real method and executing all lines?
when(memberUtil.getMemberInfo(any(Individual.class), any(Date.class))).thenReturn(member);
}
}
무엇이 문제입니까? – sfjac