中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

使用tSQLt進行SQL Server單元測試

2019-02-26    來源:多智時代

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用

tSQLt是一種用于在SQL Server中進行單元測試的免費開源框架。開發(fā)者可以編寫tSQLt測試案例,從而基于生產(chǎn)數(shù)據(jù)創(chuàng)建虛擬的表和視圖,然后將期望值與實際的測試結果進行比較。測試是用T-SQL編寫的,因此可以直接在SQL Server Management Studio中創(chuàng)建。

使用tSQLt,開發(fā)者就能夠擁有測試案例本身創(chuàng)建的數(shù)據(jù),而不需要基于生產(chǎn)數(shù)據(jù)庫的副本或者需要單獨維護的測試數(shù)據(jù)庫來測試。所有測試都在事務中執(zhí)行,這有助于減少清理的工作。tSQLt測試可以邏輯分組到名為test classes的數(shù)據(jù)庫schema中。

安裝這個框架很簡單;下載了tsQLt之后,用戶首先需要在數(shù)據(jù)庫上啟用CLR。

EXEC sp_configure 'clr enabled', 1;

RECONFIGURE;執(zhí)行tSQLt文件夾中的Example.sql腳本會創(chuàng)建演示數(shù)據(jù)庫。(想要把tSQLt安裝到另一個數(shù)據(jù)庫中,你需要運行ALTER DATABASE,并加上SET TRUSTWORTHY ON聲明)。

下一步是設置test class,其中會包含多個測試案例。這也只是創(chuàng)建新的schema:

EXEC tSQLt.NewTestClass 'AcceleratorTests';

GO這些工作完成之后,就可以創(chuàng)建測試案例了;以下是一個示例。所有測試案例的名稱都需要以“test”開頭,并遵循SQL Server存儲過程的命名規(guī)則。這個示例創(chuàng)建了一個測試表,然后插入數(shù)據(jù),并調(diào)用了函數(shù)GetStatusMessage。tSQLt函數(shù)AssertEquals會根據(jù)期望值檢查實際的結果,如果匹配的話,測試就通過了。

CREATE PROCEDURE [AcceleratorTests].[test status message includes the number of particles]

AS

BEGIN

--Assemble: Fake the Particle table to make sure it is empty and that constraints will not be a problem

EXEC tSQLt.FakeTable 'Accelerator.Particle';

-- Put 3 test particles into the table

INSERT INTO Accelerator.Particle (Id) VALUES (1);

INSERT INTO Accelerator.Particle (Id) VALUES (2);

INSERT INTO Accelerator.Particle (Id) VALUES (3);

--Act: Call the GetStatusMessageFunction

DECLARE @StatusMessage NVARCHAR(MAX);

SELECT @StatusMessage = Accelerator.GetStatusMessage();

--Assert: Make sure the status message is correct

EXEC tSQLt.AssertEqualsString 'The Accelerator is prepared with 3 particles.', @StatusMessage;

END;當執(zhí)行這個測試案例的時候,結果會以文本形式顯示(或者可以選擇以XML格式輸出):

+----------------------+

|Test Execution Summary|

+----------------------+

|No|Test Case Name |Result

+--+------------------------------------------------------------------------+-------+

|1|[AcceleratorTests].[test status message includes the number of particles]|Success|

-------------------------------------------------------------------------------

Msg 50000, Level 16, State 10, Line 1

Test Case Summary: 1 test case(s) executed, 1 succeeded, 0 failed, 0 errored.

-------------------------------------------------------------------------------一旦在測試類中創(chuàng)建了大量測試案例,我們就可以使用EXEC tSQLt.RunAll來批量運行。想要獲得更多開始使用tSQLt的信息,你可以訪問tSQLt教程。

如果你想要把SQL單元測試作為持續(xù)構建過程的一部分,那么可以把tSQLt與Cruise Control集成。正如之前在InfoQ中曾經(jīng)報道過的,有一個針對tSQLt的可視化界面叫做SQL Test。tSQLt與SQL Server 2005 SP2及更高版本兼容。

在不久的將來,云計算一定會徹底走入我們的生活,有興趣入行未來前沿產(chǎn)業(yè)的朋友,可以收藏云計算,及時獲取人工智能、大數(shù)據(jù)、云計算和物聯(lián)網(wǎng)的前沿資訊和基礎知識,讓我們一起攜手,引領人工智能的未來!

標簽: 大數(shù)據(jù) 腳本 開發(fā)者 數(shù)據(jù)庫 云計算

版權申明:本站文章部分自網(wǎng)絡,如有侵權,請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:融云助中國車友會App 打造最大車主社區(qū)

下一篇:2014年全球云計算基礎投資達264億美金