gpt4 book ai didi

sql-server - tSQLt - 处理多个 SQL Server 结果集

转载 作者:行者123 更新时间:2023-12-02 22:00:04 36 4
gpt4 key购买 nike

我正在使用 tSQLt 创建 SQL Server 单元测试。

我正在测试的过程返回 3 个结果集。我的 webAPI 处理多个结果集并将其发送到 UI 很好。

问题:在我的 SQL Server 单元测试中,如何处理 3 个结果集?如果proc返回一个结果集,就很容易处理。我使用以下内容:

Insert Into @ReturnData
(
ID,
Data1,
Data2
)
Exec @Ret = StoreProcName

然后我可以对 @ReturnData 临时表运行一系列检查。但我不明白如何处理/测试一个过程,如果它返回多个结果集。这可能吗?

谢谢。

最佳答案

我建议您使用的方法是 tSQLt.ResultSetFilter() 。这需要一个参数来表示要返回的结果集的数量,并调用被测试的代码(示例中的 StoreProcName),返回该结果集,然后您可以使用 Insert..Exec 捕获该结果集。

此过程的缺点是它每次运行仅捕获一个结果集 - 因此您需要多次调用它才能返回所有结果集。我通常每次测试只查看一个结果集,这样我就可以专注于回答该测试中的一个问题,但是如果您的结果集相互关联并且您需要两者都返回以评估您的测试,那么您将需要调用 tSQLt.ResultSetFilter 和因此,在您的测试中,被测试的代码不止一次(manual 有关于这种情况的更多信息)

顺便说一句,我之前曾在博客中介绍过我在 using insert..exec with SPs that return multiple identical result sets 时遇到的一些意外行为,这可能会引起兴趣。

关于sql-server - tSQLt - 处理多个 SQL Server 结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22365579/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com