我们有一个DateTime服务,当我们需要使用Date时会将数据库日期拉下来。现在,如果我想使用FitNesse使用“今日”日期运行测试,那么创建一种方法(OurService)的最简单方法是什么.CurrentDate是静态的?
我们有一个控件,可以将天数,年数或月数广告到当前日期..我希望能够对此进行测试。
谢谢!
答案 0 :(得分:2)
在您的代码中,添加一个方法从“某处”(“某处”是实现细节)中提取日期。例如,在我的代码中:
public class X {
Date now = new Date ();
}
替换为:
public class X {
Date now = now ();
protected Date now () { return new Date (); }
}
我现在可以在我的测试中扩展X以使用返回固定日期的内容覆盖now()
。
还添加一个调用原始实现但忽略结果的测试(好吧,你可以检查结果是否在“now”的范围内)。此测试只是确保旧日期提取代码继续有效。