현재 날짜를 가져 오는 도우미 클래스가 필요합니다. 나중에 테스트 문제 (시스템 시간보다 다른 시간을 반환해야 할 수도 있음)로 인해 코드에 new Date()
이 발생하지 않도록하고 JodaTime을 사용하여 테스트 문제를 방지 할 수 없습니다.java.util.Date의 모의 헬퍼 클래스
public interface DateHelper {
/**
* Returns the current date.
*/
Date now();
}
을하지만 어떻게 클라이언트에이 인터페이스의 모의 객체를 제공 할 수 있습니다 :
이 같은 도우미의 생각?
public ClientOfDateHelper {
private DateHelper dateHelper;
// no-arg constructor that instantiates a standard implementation of DateHelper
public ClientOfDateHelper() {
this.dateHelper = new DefaultDateHelper();
}
// constructor that can be used to pass mock to the client
public ClientOfDateHelper(DateHelper suppliedDateHelper) {
this.dateHelper = suppliedDateHelper;
}
public void foo() {
Date today = dateHelper.now();
// do some work that requires today's date
}
}
이 DateHelper을 사용하는 적은 코드를 필요로하는 더 우아한 해결책은 있는가, 아직 모의 객체를 사용 할 수 있습니다 : 내가 생각할 수있는 유일한 해결책이 무엇입니까?
종속성 삽입 또는 종속성 조회 (클라이언트가 일부 중앙 서비스/클래스의 날짜 도우미를 요청)는 어떻게됩니까? – Thomas