创建模拟存储过程

时间:2011-02-03 15:28:38

标签: .net sql-server unit-testing stored-procedures mocking

是否有一种基于sql存储过程自动化/生成模拟或存根的简单方法?

我想要讨论的情况是,在开发过程中对某个proc进行了更改,即有人添加了一个必需的输入参数,然后我希望未使用所需参数更新的测试失败。

3 个答案:

答案 0 :(得分:1)

虽然自动化程度较低,但另一种方法是创建一个脚本,其中包含您感兴趣的存储过程的一组执行语句。通过运行这些脚本,您可以捕获那些在更改参数时失败的脚本。您还可以编写MS SQL

中的exec存储过程位

例如

exec [DATABASE].dbo.[StoredProc] parameter1, parameter 2

这不会提供任何验证结果的机制。对于更全面的方法,您可以将这个示例放在Simple-Talk新闻稿中,该新闻稿使用c#和NUnit构建测试工具。

"Close those Loopholes - Testing Stored Procedures"

答案 1 :(得分:0)

一种解决方案是编写测试以验证存储过程接受的参数数量。这将是一个集成类型测试,而不是纯单元测试,但它可以解决您的问题。

答案 2 :(得分:0)

通过检查INFORMATION_SCHEMA.PARAMETERS

,您可以生成调用存储过程(可能带有虚拟变量)的测试

如果在这样的测试存储过程中运行sp_recompile,则由于参数数量不正确而无法编译。