2012-09-14 107 views
1

我想在我的項目的一些單元測試(我是新來的測試),但在線教程似乎表明實例測試僅simpliest東西。Zend的單元測試與數據庫

我要考什麼情況下,我SurveyController發送POST到的addAction會導致增加相應行到我的調查和問題表(一到多)後,當。

什麼是測試數據庫相關的東西的最佳實踐?我是否爲我的測試環境創建單獨的數據庫並對其執行測試?這是唯一正確的選擇?

+0

最佳做法是模擬數據庫,以便您可以控制響應以測試不同的結果 –

回答

2

這要看您的具體情況。

這是我對這個:

的想法是要測試,但也DRY(不要重複自己)。您的測試必須涵蓋所有或儘可能多的不同情況,以確保您的組件經過全面測試並準備好發佈。

如果您使用已開發的框架來訪問您的數據庫,如Doctrine,Zend Framework,PhalconPHP等,那麼您可以假設該框架已經過測試並且未測試實際的CRUD操作。你可以專注於你自己的代碼。

有些人可能想測試甚至認爲,但在我看來這是一個矯枉過正和資源浪費。實際上,如果他們想要進行更多的測試,實際上可以包括特定框架的測試:)

如果您對數據庫層類及其與應用程序的交互負有責任,那麼測試是必須的。您可能無法在您需要通過代碼驗證數據庫操作是否正常的時候運行它們,但您需要擁有它們。

最後,您可以使用代碼中建議的模擬測試Mark Baker,並假定數據庫將按照您的預期進行響應(因爲它已經過測試)。然後您可以看到您的應用程序將如何對不同的響應或結果做出反應。

懲戒數據庫操作,實際上使你的測試運行得更快(與配備這種策略的還有其他優點),因爲不會有在測試本身的任何數據庫交互。如果不是成千上萬的測試和持續集成,這個項目可以變得非常方便。

HTH