Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 测试的静态日期时间_.net_Vb.net_Testing_Fitnesse - Fatal编程技术网

.net 测试的静态日期时间

.net 测试的静态日期时间,.net,vb.net,testing,fitnesse,.net,Vb.net,Testing,Fitnesse,我们有一个DateTime服务,当我们需要使用日期时,它会将数据库日期拉下来。现在,如果我想使用FitNesse运行一个使用“Todays”日期的测试,那么创建一个拥有(我们的服务)的方法的最简单方法是什么呢 我们有一个到当前日期的天数、年数或月数的控件。。我希望能够测试这个 谢谢 在代码中,添加一个从“某处”提取日期的方法(“某处”是一个实现细节)。例如,在我的代码中: public class X { Date now = new Date (); } 替换为: public cl

我们有一个DateTime服务,当我们需要使用日期时,它会将数据库日期拉下来。现在,如果我想使用FitNesse运行一个使用“Todays”日期的测试,那么创建一个拥有(我们的服务)的方法的最简单方法是什么呢

我们有一个到当前日期的天数、年数或月数的控件。。我希望能够测试这个


谢谢

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

public class X {
    Date now = new Date ();
}
替换为:

public class X {
    Date now = now ();
    protected Date now () { return new Date (); }
}
我现在可以在测试中扩展X,用返回固定日期的内容覆盖
now()


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

因此,如果我正在测试一个从类内部调用此类的控件(因此无法传入DateTime值),我将如何将新值放入该控件中?如果我创建一个新类并继承,控件仍将调用X?您将重写控件以允许您传入X的实例。从TDD知识:静态方法和对
new
的内部调用无法测试。必须用工厂方法包装它们。