文章导读
大家好,我是林译川,今天我们来聊一聊如何使用tSQLt这个强大的SQL单元测试框架来创建实用程序过程。实用程序在数据库开发中扮演着重要的角色,而tSQLt则可以帮助我们更好地测试这些实用程序。本文将带你一步步了解如何使用tSQLt来创建和测试SQL实用程序,让你在数据库开发的道路上更加得心应手。
关于SQL实用程序
SQL实用程序过程通常分为两类:系统实用程序和用户定义的实用程序。
系统实用程序
系统实用程序是SQL Server随附的现成SQL过程,可以帮助维护系统(SQL Server)和系统实体(数据库,SSIS包等)的良好运行状况,并提供元数据(数据)关于数据库),以方便跟踪,记录日志和解决错误。
用户定义的实用程序
用户定义的实用程序是用户编写的充当实用程序的存储过程,可以方便另一个存储过程,满足业务或系统需求。
创建实用程序
在本节中,我们将根据业务需求编写实用程序。请记住从SQL单元测试的角度来考虑实用程序过程。
业务需求
我们需要一个数据库报告来显示完整的每周销售。
初步分析
为了实现这个需求,我们需要一个实用程序来输出每周报告的开始和结束日期。
规划实用程序逻辑
我们将使用DateAdd() SQL函数来构建实用程序过程。
测试驱动的数据库开发
我强烈建议使用测试驱动的数据库开发方法来创建实用程序。
创建样本数据库
让我们创建并填充一个名为ITSalvesV2的示例数据库。
工作日名称和号码列表
在编写实用程序之前,我们需要了解如何根据SQL Server中的当前日期时间设置以数字表示星期几。
编写实用程序
现在,我们必须以这样一种方式编写实用程序:我们应该能够将每周报告的开始日期指定为上周的星期一,将结束日期指定为上周的星期日。
测试运行实用程序
在示例数据库中创建了实用程序之后,我们需要通过运行以下T-SQL脚本来测试运行情况:
报表主要程序中实用程序的使用
现在让我们快速分析报告过程如何使用实用程序。
创建WeeklySalesReport过程
如果我们要创建WeeklySalesReport过程,则实用程序GetWeeklyReportStartEndDate将返回上一完整周的开始和结束日期,我们可以基于这些返回的开始和结束日期(最后一整周)来进行销售。
SQL单元测试实用程序过程
让我们尝试了解以下问题的答案:
在主报告程序中调用的实用程序如何进行单元测试?
实用程序过程就像任何其他存储过程一样,其SQL单元测试的执行方式与其他过程的单元测试相同。
应当首先对两种方法中的哪一种进行单元测试?
虽然顺序无关紧要,但是对主过程进行单元测试的方式将与SQL单元测试实用程序略有不同。
设置tSQLt框架
我们假设已经通过下载tSQLt并运行tSQLt.class.sql脚本安装了tSQLt,并准备将其用于示例数据库ITSalesV2。
创建实用程序过程SQL单元测试类
在开始对数据库对象(实用程序)进行SQL单元测试之前,我们需要在示例数据库ITSalesV2中创建一个名为GetWeeklyReportStartEndDateTests的通用测试类。
TSQLt测试运行
让我们空运行SQL单元测试:
编写实用程序GetWeeklyReportStartEndDate SQL单元测试
现在让我们为实用程序编写SQL单元测试:
运行tSQLt测试
现在运行tSQLt测试以查看结果:
恭喜,您已经成功完成了任务!
目录
- tSQLt – 数据库单元测试中被遗忘的宝藏
- 简单单词中使用tSQLt进行的常规SQL单元测试
- tSQLt单元测试的测试驱动数据库开发(TDDD)基础
- 10个最常见SQL单元测试错误
- 为什么要为SQL单元测试巧妙地命名数据库对象
- 您可以针对任何存储过程编写三个标准SQL单元测试
- 使用tSQLt创建SQL单元测试实用程序过程
希望这篇文章能帮助你更好地理解如何使用tSQLt创建SQL单元测试实用程序。如果你还有其他问题,欢迎在评论区留言讨论。我是林译川,我们下期再见!
