我一直以这种方式测试 Dates,在我的类中有一个受保护的方法 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 方法,因为它没有意义(有时我需要真实实例,有时需要测试实例)。这引出了一个问题:在这种情况下如何测试日期?