我的問題主要是關於測試方法。 我正在爲實踐TDD(測試驅動開發)的組織工作。我們使用AngularJS,因此使用了完整的測試堆棧 - Jasmine用於單元測試,Protractor用於e2e測試。末端2端測試是否足夠?
當開發一個功能時,我們的過程首先編寫一個失敗的e2e測試,然後使用TDD編寫功能。測試僅針對公共方法編寫(無論是用於控制器/指令/服務)。 它自身的產品不包含任何複雜的邏輯(除了一些例外)。 最近我們開始討論這樣一個事實,即編寫控制器的單元測試沒有意義,因爲它們暴露了功能,其中100%暴露在視圖中,並且無論如何都使用e2e測試進行測試。基本上 - 單元測試和e2e測試是重疊的。 起初我們都同意,但這個決定打開了一個潘多拉盒子。畢竟,關於指令的事情可以說是一回事。那麼爲什麼要測試它們呢? 然後服務問題出現了。他們中的大多數人(98%)只是進行後端調用並返回響應。那麼爲什麼不簡單地模擬httpBackend並在測試通過e2e測試的控制器時測試服務。
你得到的漂移....
,我看到的好處做兩個單元測試和端到端的測試,儘管他們幾乎重疊。主要 - 即時反饋和「可執行文件」。 你在練什麼?你是否看到其他好處,並且是「果汁值得擠壓」 - 是否值得爲最簡單的實現編寫重疊測試,以獲得上述兩個好處?
如果寫一個好的代碼是一個意見,所以你可以刪除它,但你也可以寫關於設計模式和更多的問題高級別問題 – Shvilam 2015-04-07 08:18:11
嗨,大家好。 雖然我理解你的擔憂,但我的問題是關於方法論,這些問題永遠不會有一個合適的答案。即使方法明確,每個人都有不同的做法,我的問題的重點是讓其他人分享他們在測試方法方面的實踐和經驗。 要做到這一點,必須引發討論。一旦這樣,結果就可以收斂到你正在尋找的一個答案。 – 2015-04-07 08:21:35