如何在TSQLT设置中创建存储过程?

时间:2018-12-18 09:19:07

标签: c# tsqlt

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

我试图将过程创建代码放入TSQLT的SetUp中,但是由于某些原因,我发现它并没有被运行程序接受。

.sql文件名也应采用classname.SetUp格式还是过程名应仅采用这种格式?

谢谢!

1 个答案:

答案 0 :(得分:0)

要真正使用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执行,然后将继续执行实际测试。