1

我们有一个 DateTime 服务,当我们需要使用日期时,它会拉下数据库日期。现在,如果我想使用 FitNesse 使用“今天”日期运行测试,创建 (OurService).CurrentDate 静态的最简单方法是什么?

我们有一个控件,可以将天、年或月广告到当前日期。我希望能够对此进行测试。

谢谢!

4

1 回答 1

2

在您的代码中,添加一个从“某处”提取日期的方法(“某处”是一个实现细节)。例如,在我的代码中:

public class X {
    Date now = new Date ();
}

替换为:

public class X {
    Date now = now ();
    protected Date now () { return new Date (); }
}

我现在可以在我的测试中扩展 X 以覆盖now()返回固定日期的内容。

还要添加一个调用原始实现但忽略结果的测试(好吧,您可以检查结果是否在“现在”的范围内)。这个测试只是确保旧的日期拉取代码继续工作。

于 2009-12-11T14:10:49.427 回答