单元测试使用getdate()

时间:2017-02-27 15:14:30

标签: sql-server unit-testing stored-procedures getdate

我有一个存储过程使用getdate()获取当前日期并与提供的日期进行比较。

但是出现了测试问题 - >通常用于测试我们已准备好输入和输出数据,以及此数据中的预定义日期。但getdate()将始终返回当前时间,因此测试结果会有所不同。

我认为没有办法改变getdate()将返回的内容?但是从存储过程中取出getdate()并使用一些输入参数而不是一个选项。

测试此类存储过程的最佳做法是什么,以使测试结果保持不变?

1 个答案:

答案 0 :(得分:0)

看起来无法更改服务器日期或修改存储过程:

Changing the output of Getdate

在这些约束下,您可以检查过程是否返回没有错误的结果集。如果该过程查询其他表,您可以使用基于当前日期的数据填充这些表,调用该过程,验证结果,然后从其他表中删除数据。

或者,如果程序真正固定且不变,则自动测试的成本可能高于此(罕见)情况下的价值。您可以手动验证程序(QA)。