2017-02-15 16 views
0

Im пытается выполнить некоторый тест Tsqlt, и я хочу отделить свои данные от теста.Процедура TSQLT вызывает поддельную таблицу из другой Процедура

Поэтому у меня есть одна процедуры с данными:

alter PROCEDURE [Test_Calss].[test Data_Test] 
AS 
BEGIN 
EXEC tSQLt.FakeTable 'Sales.Customers'; 

INSERT INTO Sales.Customers(custid, companyname, contactname, contacttitle, address, city, region, postalcode, country, phone, fax) 
VALUES(1, N'Customer NRZBB', N'Allen, Michael', N'Sales Representative', N'teste Str. 0123', test', NULL, N'122', test', N'01-342789', N'030-033456'); 

также у меня есть другая процедура, которую я хочу использовать поддельные таблицы в ней:

ALTER PROCEDURE [Test_Calss].[test Count_Customer] 
AS 
BEGIN 

EXEC tSQLt.FakeTable 'Sales.Customers'; 

DECLARE @testres INT; SET @testres = 91; 

DECLARE @counter INT; 
SELECT @counter = COUNT(*) FROM [Test_Calss].[test Data_Test]; 

     EXEC tSQLt.AssertEquals @testres,@counter; 

END; 

Мне нужна поддельная таблица из первых [Test_Calss]. [test Data_Test] будет вызываться и проверяться во втором. Я пытался с EXEC, но это не сработало.

Любая идея, как назвать стол и его состав?

ответ

0

Способ, которым я занимаюсь, заключается в том, чтобы хранитьв моей TestClass. Я использую классы тестов довольно либерально (так же, как я делаю на C#), чтобы я мог иметь более одного тестового класса для каждой хранимой процедуры, если мне действительно нужно.

Так что в вашем случае я бы:

create PROCEDURE [Test_Calss].[SetUp] 
AS 
BEGIN 
EXEC tSQLt.FakeTable 'Sales.Customers'; 

INSERT INTO Sales.Customers(custid, companyname, contactname, contacttitle, address, city, region, postalcode, country, phone, fax) 
VALUES(1, N'Customer NRZBB', N'Allen, Michael', N'Sales Representative', N'teste Str. 0123', test', NULL, N'122', test', N'01-342789', N'030-033456') 
go 


create PROCEDURE [Test_Calss].[test Count_Customer] 
AS 
BEGIN 

DECLARE @testres INT; SET @testres = 91; 

DECLARE @counter INT; 
SELECT @counter = COUNT(*) FROM Sales.Customer; 

EXEC tSQLt.AssertEquals @testres,@counter; 

END; 
go 

exec tSQLt.RunTestClass 'Test_Calss'; 

tSQTt вызывает хранимую процедуру SetUp перед каждым испытанием в TestClass, так что вы можете использовать, чтобы подготовить ваши общие данные.