2017-02-15 15 views
0

私はいくつかのTsqltテストをしようとしていますが、私はテストから自分のデータを分離したいと思います。TSQLTプロシージャは別のプロシージャから偽のテーブルを呼び出します

だから私はデータを1つの手順があります。

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]は、2番目に呼び出されてテストされます。私は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ストアドプロシージャを呼び出します。

関連する問題