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

使用tSQLt進(jìn)行SQL Server單元測試

2019-02-26    來源:多智時(shí)代

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

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

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

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

EXEC sp_configure 'clr enabled', 1;

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

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

EXEC tSQLt.NewTestClass 'AcceleratorTests';

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

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;當(dāng)執(zhí)行這個(gè)測試案例的時(shí)候,結(jié)果會(huì)以文本形式顯示(或者可以選擇以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來批量運(yùn)行。想要獲得更多開始使用tSQLt的信息,你可以訪問tSQLt教程。

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

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

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

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

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

下一篇:2014年全球云計(jì)算基礎(chǔ)投資達(dá)264億美金