首页 > 解决方案 > 如何在 TSQLT 中创建存储过程设置?

问题描述

我尝试在 .NET 解决方案中添加新的 TSQLT。我实现的一些测试使用相同的代码,这就是为什么我想创建一个存储过程并从测试中调用它。但由于某些原因,在测试 .sql 文件中插入 SQL 管理工作室代码时,我只看到错误。

我试图将过程创建代码放在 TSQLT 的SetUp中,但由于某些原因,我看到它没有被运行程序拾取。

我的 .sql 文件名classname.SetUp也应该采用这种格式,还是过程名称应该只采用这种格式?

谢谢!

标签: c#tsqlt

解决方案


要实际使用 tSQLt 的 SetUp 功能,您只需在测试类(或 SQL Server 术语中的模式)中添加一个名为 SetUp 的存储过程。

例如,如果您有一个名为的测试类,testMergingCountryFromStaging那么您可以创建一个 SetUp 存储过程,如下所示:

CREATE PROCEDURE testMergingCountryFromStaging.SetUp
AS
BEGIN
SET NOCOUNT ON;

-- Now fake the actual tables and
-- only those fields that are actually necessary
-- for stored procedure validation.
EXEC tSQLt.FakeTable @TableName = N'Country', @SchemaName = N'dbo';
EXEC tSQLt.FakeTable @TableName = N'Country', @SchemaName = N'staging';

-- Initialize expected result and actual table
CREATE TABLE expected(CountryName VARCHAR(50) NOT NULL, ActiveForDelivery BIT NOT NULL);
END;
GO

然后,当通过执行来运行该类的单元测试时EXEC tSQLt.Run 'testMergingCountryFromStaging';,SetUp存储过程将首先由tSQLt执行,然后随着实际测试的执行而恢复。


推荐阅读