所以我開始在我的應用程序的symfony 2中編寫功能和單元測試。我應該怎樣測試?我應該測試什麼?
我將功能與單元測試分開。功能測試僅適用於控制器,其餘單元測試。通過功能測試,我測試用戶在我的應用程序中可以使用的所有場景的HTML輸出。但它夠了嗎?我只測試響應/請求,而不是控制器中的代碼本身,沒有數據庫查詢等。
單元測試...我應該用它測試控制器嗎?另外,如何測試存儲庫?我應該測試每個查詢的輸出嗎?如果數據庫缺少記錄怎麼辦?
另外,測試在數據庫中創建的混亂如何?有沒有辦法在測試之後恢復數據庫到之前的狀態?
對不起有多個問題,但是這整個單元測試題目對我來說真的是一團糟。
非常感謝!
如果在'dev'或'test'環境中加載頁面需要幾秒鐘,請嘗試將緩存移至[tmpfs](http://en.wikipedia.org/wiki/Tmpfs)或移至[SSD] (http://en.wikipedia.org/wiki/Solid-state_drive),你應該觀察到明顯的差異。 – 2014-12-13 22:49:41
我不明白爲什麼TDD和功能測試不兼容。您可以配置phpunit以便一次僅測試一個組,類等。因此,如果您正確配置phpunit,TDD不會花費更多時間。 – 2014-12-13 22:52:15
爲了使用功能測試,您必須在每次運行一組測試時擦除數據庫。這需要時間。另一個問題恰恰是執行測試的次數。你不執行所有這些,這意味着在重構一些代碼之後,你不能確定_everything_是好的,只是它的一部分。使用單元測試你想檢查整個代碼的錯誤,因爲沒有它你不能確定你不會通過重構某些東西來破壞一些代碼。 – 2014-12-15 07:35:29