저는 Mockito를 사용하여 비즈니스 객체를 단위 테스트하고 있습니다. Business Object는 일] 적으로 DB에서 데이터를 가져 오는 DAO를 사용합니다. 비즈니스 오브젝트를 테스트하기 위해, 나는 모든부분 조롱은 나쁜 습관으로 간주됩니까? (Mockito)
when(...).thenReturn(...)
문을 작성하는 것보다 (는 HashMap의 데이터를 유지하는) 별도의 메모리 DAO를 사용하는 것이 더 쉽습니다 것을 깨달았다. 이러한 DAO를 만들려면, 나는 시작 부분 조롱과 같이 내 DAO 인터페이스 :
when(daoMock.getById(anyInt())).then(new Answer() {
@Override
public Object answer(InvocationOnMock invocation) throws Throwable {
int id = (Integer) invocation.getArguments()[0];
return map.get(id);
}
});
하지만 그냥 완전히 새로운 DAO 구현 자신을 구현하기 쉽게했다 그것은 나에게 발생 (사용하는 메모리의 HashMap) Mockito (InvocationOnMock 객체에서 인수를 얻을 필요가 없음)를 사용하지 않고 테스트 된 비즈니스 객체가이 새로운 DAO를 사용하도록 만들지 않아도됩니다.
또한 부분적 조롱은 나쁜 습관이라고 생각했습니다. 내 질문은 : 내 경우에 내가 나쁜 행동을하는거야? 단점은 무엇인가? 나에게 이것은 괜찮은 것처럼 보이고 나는 잠재적 인 문제가 무엇인지 궁금해하고있다.
감사합니다. 이것은 나에게 유용한 조언이었습니다. 나는이 기사를 읽고 다른 대답을 기다렸다가 이것을 이것을 허용 된 것으로 표시했습니다. – machinery