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

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

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

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

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

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

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

EXEC sp_configure 'clr enabled', 1;

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

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

EXEC tSQLt.NewTestClass 'AcceleratorTests';

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

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è)測(cè)試案例的時(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.

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

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

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

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

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

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

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