c# - 如何在 TSQLT 中创建存储过程设置?
问题描述
我尝试在 .NET 解决方案中添加新的 TSQLT。我实现的一些测试使用相同的代码,这就是为什么我想创建一个存储过程并从测试中调用它。但由于某些原因,在测试 .sql 文件中插入 SQL 管理工作室代码时,我只看到错误。
我试图将过程创建代码放在 TSQLT 的SetUp中,但由于某些原因,我看到它没有被运行程序拾取。
我的 .sql 文件名classname.SetUp
也应该采用这种格式,还是过程名称应该只采用这种格式?
谢谢!
解决方案
要实际使用 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执行,然后随着实际测试的执行而恢复。
推荐阅读
- python - 如何查找元素列表是否在另一个元素列表中?
- laravel - 当 CommandFinished 事件触发时,Laravel 捕获字符串输出
- r - 在 NA 值之后读取带有未指定尾随空格的 csv
- php - php cURL请求后没有来自API的回调
- reactjs - 我应该在哪里以及如何在我的 Create React App 中添加 JSON-LD 模式?
- python-3.x - 如何在 GCP 的作曲家中读取从云函数传递到 Dataproc SparkOperator 的参数
- angular - Angular - 导入 BrowserAnimationsModule 和 NoopAnimationsModule 并决定在运行时使用什么(使用 AOT)
- sql - 从 SQL Server 表中查找和删除重复行
- javascript - 来自响应数据的 javascript 映射
- python - 慢熊猫索引查找唯一索引