根据阅读本link中的讨论,我已经知道如何使用不同的参数值调用相同的测试用例。但是,当我查看tSQLt.TestResult表时,我只有最后一次运行的记录。下面的示例伪代码表示该场景。
EXEC tSQLt.Run' Main_SP';
- 主SP伪码
创建Proc Main_SP
宣布@param
选择@param = 1
exec MyTestCase @param
选择@param = 2
exec MyTestCase @param
选择@param = 3
exec MyTestCase @param
有没有办法让我仍能在其他参数的相同测试用例的tSQLt.TestResult中看到完整的历史记录?
答案 0 :(得分:0)
我认为您所链接的答案描述了以下内容:
步骤1。创建一个存储过程,该过程不是tSQLt测试运行器将运行的测试,但允许您传入参数。 第2步。创建一个或多个特定的测试用例,这些测试用例是实际的tsqlt测试但具有不同的名称。
这将为您提供能够为特定方案命名每个测试的优势,但不需要为每个案例编写重复的测试代码。
exec tSQLt.NewTestClass 'MyTestClass';
go;
-- step1: notice this test does not start with the keyword test so
-- will not be executed by the test runner
create procedure [MyTestClass].[GenericTestScenario]
@param int
as
begin
-- write you generic test logic and then the assert
declare @result int = dbo.yourFunctionUnderTest(@param);
exec tSQLt.AssertEquals(@param, @result);
end
go
-- step 2 (another test case)
create procedure [MyTestClass].[test Specific Scenario 1]
as
begin
declare @param = 1;
exec MyTestClass.GenericTestScenario @param
end
go
-- step 2 (first test case)
create procedure [MyTestClass].[test Specific Scenario 2]
as
begin
declare @param = 2;
exec MyTestClass.GenericTestScenario @param
end
go
tSQLt.run 'MyTestClass'
go