2011-02-25 163 views
4

我想知道什麼是管理單元測試的最佳實踐。Symfony單元測試最佳實踐

我有這樣的感覺,我應該寫一個固定裝置foreach單元測試。 我認爲,如果我寫太多的單元測試夾具將太長。 然後,如果我想修改它,我會打破一些燈具。

現在我搜索一種方法來編寫每個單元測試一個燈具。

理論上我覺得沒有問題。告訴我,如果我錯了。

我的問題是我如何確保燈具將被更新。如果我更改數據庫模式,我不想更改所有燈具。 如果模式的任何更改都通過遷移進行,則應該可能。

有沒有什麼工具呢?

回答

5

我發現最好對每個測試文件使用單獨的夾具文件。這種方法有以下幾個優點:

  • 燈具獨立,並改變它們不會影響所有的測試,但只有一個。
  • 夾具是較小因爲他們不需要覆蓋每個測試用例。這使得它們更易於閱讀。
  • 查看測試用例的主題更容易,因爲每個fixture文件只覆蓋足夠的數據。

缺點是,當你經常改變數據庫時,你也需要更新你的燈具。在許多情況下,這是不需要的,因爲新的領域通常僅用於新測試。否則,您可以始終自動執行此過程(例如,我通過vim宏進行此操作)。

添加新字段不應該打破你現有的測試恕我直言。你應該讓所有的測試仍然通過。如果你需要改變行爲,你應該首先更新你的測試,讓它們失敗並讓它們通過。

+2

+1。完全覆蓋了我想說的內容,但無法讓它聽起來足夠清晰:-)單獨的夾具文件非常棒 - 在運行單個單元測試時也可以加快數據庫的下載/重新加載速度。 – richsage 2011-02-27 18:42:15