C# 如何为SQL查询编写自动测试?

C# 如何为SQL查询编写自动测试?,c#,sql,unit-testing,testing,regression-testing,C#,Sql,Unit Testing,Testing,Regression Testing,我们工作中采用的当前系统是编写一些极其复杂的查询,这些查询执行多个计算并具有多个连接/子查询。我认为我没有足够的经验来判断这是否正确,所以我同意并尝试使用这个系统,因为它有明显的好处 目前我们面临的问题是,编写查询的人会犯很多错误,并假设一切都是正确的。我们现在已经指派了一名测试人员来分析所有的查询,但这仍然非常耗时和紧张 我想知道我们如何创建一个自动化的过程(如果可能的话,不需要专门编写代码,因为我可以在很长的一段时间内解决如何做到这一点),以验证一组10+不同的输入,验证输出数据,并说明计算

我们工作中采用的当前系统是编写一些极其复杂的查询,这些查询执行多个计算并具有多个连接/子查询。我认为我没有足够的经验来判断这是否正确,所以我同意并尝试使用这个系统,因为它有明显的好处

目前我们面临的问题是,编写查询的人会犯很多错误,并假设一切都是正确的。我们现在已经指派了一名测试人员来分析所有的查询,但这仍然非常耗时和紧张

我想知道我们如何创建一个自动化的过程(如果可能的话,不需要专门编写代码,因为我可以在很长的一段时间内解决如何做到这一点),以验证一组10+不同的输入,验证输出数据,并说明计算是否正确

我知道我可以使用数据库中的特定数据编写脚本,使用c#(db是SQL Server)创建脚本,并验证所有输出的值,但我想知道官方的“标准”是什么,因为我在这方面缺乏经验,我想改进

如果需要,我很乐意添加更多信息,如果需要,请添加评论。多谢各位


编辑:我正在使用c#

测试运行SQL查询的代码的标准方法是对其进行单元测试。(有比单元测试更高级别的测试,但听起来您的问题在于应用程序的一个小的、特定的部分,所以不要担心更高级别的测试。)不要尝试直接测试查询,而是测试查询的结果。也就是说,为运行查询的每个C#方法编写单元测试。每个单元测试都应该将已知数据插入数据库,调用该方法,并断言它返回预期结果


C#中两种最常见的单元测试方法是使用or。如何编写单元测试是一个大话题。应该是一个很好的开始。

这个问题的另一个答案虽然对于测试代码通常是正确的,但根本没有解决测试数据库的问题


听起来你在找我。其思想是使用所需的模式和测试数据创建一个临时的、隔离的数据库环境,然后验证查询是否返回了适当的数据。

谢谢您的回答。我更新了我的问题,说明我正在使用c。我们目前也没有c级的自动测试系统,所以我也需要这方面的所有建议。我会把这个问题标记为正确的,因为你给了我一个方向,没有其他人会有更好的回答。感谢您希望从C#程序测试运行的查询,还是手动或其他方式运行的查询?@daveshweisguth它们是在C#web应用程序中运行的。因此,目前的最终输出是来自原始查询的html表。。。您是否正在尝试测试生成/使用查询的应用程序的正确性?基本上测试这些查询是否正确反映了某些外部指定的业务规则?存档链接: