跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

如何用tSQLt创建SQL单元测试实用程序?

文章导读

大家好,我是林译川,今天我们来聊一聊如何使用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单元测试实用程序。如果你还有其他问题,欢迎在评论区留言讨论。我是林译川,我们下期再见!

相关文章