1
A
回答
3
我不知道有關該主題的標準參考。這裏是我會做的:
如果我只有一個測試要寫,或者如果我需要一個被測試的類的實例構造不同於我的測試套件中該類的任何其他實例,我會只是在測試中實例化它。爲什麼要讓它更復雜,你必須?如果我需要反覆使用同一個實例,我會把它放在一個夾具中。
我的確認爲只需構造給定測試用例所需的固定裝置是非常重要的,這樣就不會誤導讀者。這意味着要麼使用您的測試框架提供的任何範圍機制(例如,rspec context
塊或全新的xUnit TestCase)僅在需要它的測試之前構建給定的燈具,或者將燈具的實例構造移動到測試中。爲了避免重複,您可以隨時編寫一個方法來構建一個實例,並根據需要從多個測試中調用它。
0
我傾向於避免把東西放在夾具內。 經過一段時間後,隨着夾具測試數量的增加,CUT狀態趨於失控。每個測試需要一個simialr,但不同的行爲可能或不能被添加到某些初始化/設置方法。
在夾具級別進行CUT會在測試之間創建一個共享狀態,這會導致由於運行順序而導致測試失敗 - 這是一個很難找到並修復的問題。
另一個可讀性問題發生在測試失敗時 - 人們往往忘記可能在另一種方法中發生的初始化。
有更好的方法來避免代碼重複 - 使用AutoMocking容器來創建具有假參數或Factory方法的對象,它們爲每個測試啓用不同的初始化(如果需要)並創建更易讀和可維護的測試。
相關問題
- 1. 測試類中是否存在字段
- 2. Grails域標準驗證器:我應該測試還是不?
- 3. 單元測試應該是黑盒測試還是白盒測試?
- 4. Perl:測試是否存在類
- 5. 是否存在測試命令行參數的既定標準?
- 6. 測試是否存在文件中的模式,評估是否
- 7. 我是否需要在單元測試中測試邊界類?
- 8. 我應該寫集成測試還是單元測試?
- 9. 我應該在測試時在Factory girl還是spec文件中存儲模型?
- 10. 如何測試sql腳本是junit測試中的標準sql?
- 11. Moq是否取代標準VS'Assert'測試?
- 12. Rascal單元測試框架是否支持測試夾具?
- 13. NUnit現在是否爲每個包含的測試方法創建測試夾具類的新實例?
- 14. 我應該測試一個存根方法是否被調用?
- 15. 單元測試 - 我應該拆分測試還是進行單個測試?
- 16. 測試單元測試是否存在保存方法
- 17. 應該是什麼在單元測試
- 18. 測試iFrame的location.href是否在jasmine單元測試中設置
- 19. 應該在庫中的實用程序測試類進行測試還是主要?
- 20. 我應該創建大量的PropertyChangedEventHandler還是測試PropertyChangedEventArgs?
- 21. 我應該使用CodeIgniter的單元測試類還是PHPUnit/TOAST?
- 22. JUnit測試是否應該重疊?
- 23. 測試對象是否存在?
- 24. 測試是否元素存在
- 25. 你可以測試mixin是否存在?
- 26. 廚師 - 測試cookbook_file是否存在
- 27. Ruby on Rails:測試值是否存在?
- 28. 測試相關模型是否存在
- 29. PHP測試是否存在操作符?
- 30. 測試Postgres是否存在文件