필자는 항상 테스트 방법으로 오버라이드 한 클래스의 보호 된 메소드 getDate()를 사용하여 이러한 방식으로 날짜를 테스트했습니다. 예 :싱글 톤 테스트 날짜
public class MyClass {
protected Date getDate(){
return new Date();
};
}
테스트 :
이 날에 충분했다MyClass myclass = new MyClass(){
@Override
protected Date getDate(){
return new Date(1234567890);
}
};
하지만, 다음과 같은 문제가 나타나 은 내가 한 번 인스턴스화 할 클래스를, 그래서 내가 싱글 톤 패턴을 사용 :
를public static Something getInstance() {
if (instance == null) {
instance = new Something();
}
return instance;
}
문제는이 방법으로 개체를 만들어야한다는 것입니다. Something.getInstance() - 개체가 그 메서드 내에 만들어졌습니다. getInstance 내에서 getDate 메서드를 재정의 할 수 없습니다. 왜냐하면 이해가 안되기 때문입니다 (때로는 실제 인스턴스가 필요하며 가끔씩 인스턴스가 필요하기도합니다). 이것은 내가 그런 상황에서 날짜를 테스트하는 방법에 대한 질문으로 이어진다.
Powermock과 같은 최신 조롱 프레임 워크를 사용하십시오. 그것은 오늘가는 길입니다 ... – ppeterka
실제로하고 싶은 일은 ...? – Ankit
날짜 테스트의 목표는 무엇입니까? 날짜가 제대로 작성되었는지 확인하는 중이면 테스트 할 필요가 없으며 이미 테스트 된 것입니다. 이른바'test-all' 접근법을 사용하지 마십시오. 대신, 날짜가 어떻게 든 알고리즘/방법/문제에 중요하다면 조크 프레임 워크 (JMock, EasyMock, Mockito, Powermock 등)를 사용한다고 생각해야합니다. – ThanksForAllTheFish