2017-02-15 7 views
0

일부 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; 

내가 처음부터 가짜 표를 필요 procedure [Test_Calss]. [test Data_Test]는 두 번째 테스트에서 호출되고 테스트됩니다. EXEC로 시도했지만 작동하지 않았습니다.

모든 아이디어 테이블과 해당 연락처를 호출하는 방법은 무엇입니까?

답변

0

내가하는 방법은 내 TestClassSetUp 저장 프로 시저를 갖는 것입니다. 내가 정말 필요하다면 저장 프로 시저 당 둘 이상의 테스트 클래스를 가질 수 있도록 (물론 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 그래서 당신은 당신의 공통 데이터를 준비하는 데 사용할 수있는 TestClass의 각 시험 전에 SetUp 저장 프로 시저를 호출합니다.