2009-11-13 86 views
3

我正在工作中處理一個巨大的項目。我們有大約200個數據庫表,因此有大量的模型,動作等等。如何對企業symfony項目進行單元測試?

我應該如何開始爲此編寫測試?

我最大的問題是,用symfony你可以測試石灰框架,這是偉大的。但是大部分代碼都是用數據庫寫入,刪除或做其他事情。那麼如何測試模型而不與數據庫交互?

我想做單元測試,因爲我的代碼中存在一些錯誤,通過重構函數,但我甚至不知道如何啓動。文檔中的示例僅涵蓋一個非常小的功能。當動作文件超過700行代碼時,它看起來如何?

回答

2

偉大的問題..我親身遇到過這個地方。

這是我到目前爲止已經發現:

1)獲取一個開發數據庫..做了督促數據庫上不考! 2)它可能聽起來很陳腐,但從小而簡單。

3)我不知道你的領域是什麼(電子商務數據庫,聯繫人數據庫等),但說它是一個電子商務數據庫。首先測試創建一些訂單模型並保存它們。也許在測試工具中重新創建一個真正的訂單,以便保存到數據庫中。現在,您可以快速創建1000個訂單來運行測試..方式比手動進行網上結帳更快。爲了獲得最大利益,請創建一個您目前正在處理的某些內容的模型,以便在測試過程中使用它。

4)現在開始測試你的模型提供的各種方法。再次堅持與您目前正在嘗試修復/使用的內容相關的內容。不要擔心測試所有內容,只需測試一些內容,並確保可以重複測試。

5)需要測試控制器?酷,現在你有一個模型來處理你不關心搞亂,因爲它不是真實的...需要一些變化?創建更多測試套件來構建不同的模型以滿足您的各種需求。模型可能很複雜,但您應該能夠編寫一些測試函數來創建各種模型的變體。然後對你的控制器運行...

6)繼續採取代碼覆蓋。

警告:小心是唯一一個運行單元測試..你會很快成爲最有效的問題解決者,但人們然後將嘗試讓你修復一切...

0

在單個控制器操作中有700行?測試可以通過其他方式暴露自己代碼中的問題,而不是顯而易見的斷言。如果出於某種原因難以測試某些內容,則代碼有問題。

當開始測試一個大小的項目時,焦點應該是代碼覆蓋率。起初不要太擔心邊緣案例(除非情況需要)。當開始測試項目時,我喜歡從模型開始,因爲它們是最直接的。從那裏繼續進行控制器測試,看看它是如何發展的。

相關問題