nan*_*erd 2 sql-server unit-testing tsqlt
我正在使用tSQLt创建一个SQL Server单元测试。
我正在测试的proc返回3个结果集。我的webAPI处理多个结果集,然后将其发送给UI。
问题:在我的SQL Server单元测试中,如何处理3个结果集?如果proc返回一个结果集,则很容易处理。我使用以下内容:
Insert Into @ReturnData
(
ID,
Data1,
Data2
)
Exec @Ret = StoreProcName
Run Code Online (Sandbox Code Playgroud)
然后,我可以对@ReturnData临时表进行一堆检查。但是我不明白如果它返回多个结果集,那么如何处理/测试它。这有可能吗?
谢谢。
我建议您使用的方法是tSQLt.ResultSetFilter()。它使用一个参数来表示要返回的结果集的编号,并调用被测代码(在示例中为StoreProcName),返回该结果集,然后可以使用Insert..Exec进行捕获。
此过程的缺点是每次运行仅捕获一个结果集-因此您需要多次调用它才能返回所有结果集。我通常每个测试只看一个结果集,使我可以专注于回答该测试中的一个问题,但是如果您的结果集相互关联,并且您需要将两者返回以进行评估,那么您将需要调用tSQLt。 ResultSetFilter,因此被测试的代码在测试中不止一次(手册中有关于这种情况的更多信息)
顺便说一句,我以前曾写过一篇博客,介绍在将insert..exec与SP一起使用时会遇到的一些意外行为,这些SP返回多个相同的结果集,这可能是您感兴趣的。
| 归档时间: |
|
| 查看次数: |
1166 次 |
| 最近记录: |