數(shù)據(jù)庫(kù)測(cè)試的四個(gè)階段

2018-02-24 15:41 更新

數(shù)據(jù)庫(kù)測(cè)試的四個(gè)階段

Gerard Meszaros 在他的書《xUnit 測(cè)試模式》中列出了單元測(cè)試的四個(gè)階段:

  1. 建立基境(fixture)

  2. 執(zhí)行被測(cè)系統(tǒng)

  3. 驗(yàn)證結(jié)果

  4. 拆除基境(fixture)

什么是基境(fixture)?

基境(fixture)是對(duì)開始執(zhí)行某個(gè)測(cè)試時(shí)應(yīng)用程序和數(shù)據(jù)庫(kù)所處初始狀態(tài)的描述。

對(duì)數(shù)據(jù)庫(kù)進(jìn)行測(cè)試至少要處理建立與拆除的步驟,在其中完成清理工作,并將所需的基境數(shù)據(jù)寫入表內(nèi)。因而,對(duì)于數(shù)據(jù)庫(kù)擴(kuò)展模塊而言,在數(shù)據(jù)庫(kù)測(cè)試中有很好的理由將這四個(gè)步驟還原成類似下面這樣的工作流程,這個(gè)流程對(duì)于每個(gè)測(cè)試都會(huì)完整執(zhí)行:

1. 清理數(shù)據(jù)庫(kù)

由于總是會(huì)有某個(gè)測(cè)試運(yùn)行在并不確定表中是否有數(shù)據(jù)的數(shù)據(jù)庫(kù)上,PHPUnit 在所有指定表上執(zhí)行 TRUNCATE 操作來把它們清空。

2. 建立基境

PHPUnit 隨后將迭代所有指定的基境數(shù)據(jù)行并將其插入到對(duì)應(yīng)的表里。

3–5. 運(yùn)行測(cè)試、驗(yàn)證結(jié)果、并拆除基境

在所有數(shù)據(jù)庫(kù)都完成重置并加載好初始狀態(tài)后,PHPUnit 才會(huì)執(zhí)行實(shí)際的測(cè)試。這個(gè)部分的測(cè)試代碼完全不需要數(shù)據(jù)庫(kù)擴(kuò)展模塊的參與,可以隨意測(cè)試任何想要測(cè)試的內(nèi)容。

在測(cè)試中,驗(yàn)證的目的可以使用一個(gè)名為 assertDataSetsEqual() 的特殊斷言來實(shí)現(xiàn)。當(dāng)然,這完全是可選的。這個(gè)特性將在“數(shù)據(jù)庫(kù)斷言”一節(jié)中進(jìn)行解說。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)