常見(jiàn)問(wèn)題(FAQ)

2020-07-21 09:31 更新

常見(jiàn)問(wèn)題(FAQ)

PHPUnit 會(huì)為每個(gè)測(cè)試(重新)創(chuàng)建數(shù)據(jù)庫(kù)嗎?

不,PHPUnit 要求在測(cè)試套件開(kāi)始時(shí)所有數(shù)據(jù)庫(kù)對(duì)象必須全部可用。數(shù)據(jù)庫(kù)、表、序列、觸發(fā)器還有視圖,必須全部在運(yùn)行測(cè)試套件之前創(chuàng)建好。

Doctrine 2eZ Components 擁有強(qiáng)力的工具,可以按預(yù)定義的數(shù)據(jù)結(jié)構(gòu)創(chuàng)建數(shù)據(jù)庫(kù),但是這些都必須和 PHPUnit 擴(kuò)展模塊對(duì)接之后才能自動(dòng)在整個(gè)測(cè)試套件運(yùn)行之前重新創(chuàng)建數(shù)據(jù)庫(kù)。

由于每個(gè)測(cè)試都會(huì)徹底清空數(shù)據(jù)庫(kù),因此無(wú)須為每個(gè)測(cè)試重新創(chuàng)建數(shù)據(jù)庫(kù)。持久可用的數(shù)據(jù)庫(kù)同樣能夠完美工作。

為了讓數(shù)據(jù)庫(kù)擴(kuò)展模塊正常工作,需要在應(yīng)用程序中使用 PDO 嗎?

不,只在基境的清理與建立階段還有斷言檢定時(shí)用到PDO。在你的自有代碼中,可以使用任意數(shù)據(jù)庫(kù)抽象。

如果看到 “Too much Connections” 錯(cuò)誤該怎么辦?

如果沒(méi)有對(duì) TestCase 中 getConnection() 方法所創(chuàng)建 PDO 實(shí)例進(jìn)行緩存,那么每個(gè)數(shù)據(jù)庫(kù)測(cè)試都會(huì)增加一個(gè)或多個(gè)數(shù)據(jù)庫(kù)連接。MySQL的默認(rèn)配置只允許100個(gè)并發(fā)連接,其他供應(yīng)商的數(shù)據(jù)庫(kù)也都有各自的最大連接限制。

子章節(jié) “使用你自己的抽象數(shù)據(jù)庫(kù) TestCase 類”展示了如何通過(guò)在所有測(cè)試中使用單個(gè)PDO實(shí)例緩存來(lái)防止發(fā)生此錯(cuò)誤。

Flat XML / CSV 數(shù)據(jù)集中如何處理 NULL?

別這么干。應(yīng)當(dāng)改用 XML 或者 YAML 數(shù)據(jù)集。

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

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)