可以间谍/模拟Sql Server用户定义的函数?

时间:2012-12-18 13:00:04

标签: sql tsql unit-testing

是否可以使用T-SQL模拟/间谍功能?我找不到任何提及它的东西。我正在考虑使用SpyProcedure作为指导创建我自己的实现(如果不存在实现)。任何人都有这个成功吗?

感谢。

1 个答案:

答案 0 :(得分:4)

在SQL Server中,函数不能有副作用。这意味着,在您的测试中,您可以使用on替换内部函数,返回固定的结果,但无法记录过去进入函数的参数。

有一个例外:如果函数返回一个字符串并且字符串不必遵循特定格式,则可以连接传入的参数,然后断言,返回的值包含所有正确的值,但这是一个非常特殊的情况,通常不可能。

要假冒某个功能,只需删除或重命名原件,然后在测试中创建自己的原件。我会将此代码放入辅助函数中,因为它可能会从多个测试中调用。