【发布时间】:2019-08-18 11:56:25
【问题描述】:
我想通过存储过程为数据库插入和更新编写 tSQLt 测试用例。
我按照tSQLt的官方文档,将CLR安装到数据库中。
当我安装 tSQLt 时,我可以看到多个表和数百个存储过程被导入。不确定运行 tSQLT 测试是否真的需要这些。
并创建了程序
USE [Speciman_Order]
GO
/****** Object: StoredProcedure [AccessionDetailsTest].[Fetch Records] Script Date: 8/18/2019 6:51:42 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [AccessionDetailsTest].[Fetch Records]
AS
BEGIN
DECLARE @TIMEINTERVAL int = 24;
DECLARE @rowCount int;
DECLARE @CURRENTTIME datetimeoffset = SYSDATETIMEOFFSET()
SELECT
*
FROM
Accession
WHERE
OrderStatus = 'UC' and SWITCHOFFSET(AccessionDate, DATENAME(TZ, SYSDATETIMEOFFSET())) <= DATEADD(hh, -@TIMEINTERVAL, @CURRENTTIME)
and SWITCHOFFSET(AccessionDate, DATENAME(TZ, SYSDATETIMEOFFSET())) <= @CURRENTTIME
SET @rowCount = @@ROWCOUNT;
EXEC tSQLt.AssertEquals 25000, @rowCount
END;
EXEC tSQLt.Run AccessionDetailsTest
当我尝试多次运行它时,它会抛出一个错误,指出该过程已经存在。不知道如何在安装过程中导入的大量程序中找到测试和类。
当我运行它时。我得到 0 次执行,每个字段都是 0 计数。
请帮助创建用于数据库插入和更新查询的 tSQLt 测试用例。我还阅读了一些关于模拟数据库而不是实时插入和更新的内容。请帮助我理解这个概念
【问题讨论】:
标签: sql sql-server tsqlt