我正在創建一個測試自動化項目並希望它被TESTNG使用。我計劃在自動化項目中使用MVC體系結構,想創建控制器單例。因此想知道它的優點和缺點,因爲它將被支持多線程的TESTNG訪問/使用。在測試自動化項目中使用單件控制器有什麼優缺點
1
A
回答
1
我不能評論ng的具體測試,但我可以推薦這個有趣的文件約writing testable code。特別是它有一個關於單身人士的部分。這裏有幾個提取物:
- 使用全局狀態的每一次測試需要它的預期的狀態開始,否則測試將失敗。但另一個對象可能在之前的測試中突變了全局狀態。
- 全局狀態通常會阻止測試能夠並行運行,這會迫使測試套件運行速度變慢。因爲你需要在測試過程中改變實例,所以你會經常在所謂的單例中看到諸如reset()或setForTest()之類的增變器方法。如果忘記在測試後重置Singleton,稍後的使用將使用過時的底層實例,並且可能會以難以調試的方式失敗。
底線:如果可以,請避免使用單例,而應使用依賴注入。換句話說,而不是,:
public void someMethod() {
Controller c = Controller.getInstance();
c.doSomething();
}
贊成:
public void someMethod(Controller c) {
c.doSomething();
}
1
在測試自動化中,或者通常應該避免單身人士。 特別是在java中,您通常不能爲新的測試用例重置單例。 這導致了新tets案件使用singelton的結論,這個結果來自於前一個案例。這不好!
可能會創建特殊的單數形式,它有一個resetSingleton()或setInstance()方法,它只會用在測試用例中。
此外,您還可以通過反射來調整singelton。我已經完成了所有3種工藝,但是:
最好的是避免singeltons。
相關問題
- 1. 使用JUnits在DVS上測試ILOG JRules有什麼優缺點?
- 2. 有什麼優點和缺點有一個單獨的項目專門用於單元測試?
- 3. 在單元測試中使用隨機值有什麼缺點?
- 4. 使用Maven有什麼優點/缺點?
- 5. 繼承junit測試課有什麼優點和缺點?
- 6. 在Laravel,單動控制器的優點是什麼?
- 7. 使用git-svn有什麼優缺點?
- 8. 自動單元測試的手動單元測試有哪些優點和缺點?
- 9. AndroidViewClient/Culebra比Espresso for Android GUI自動測試有什麼缺點?
- 10. 在3層應用程序中使用中繼器控制有什麼優點和缺點?
- 11. 使用IOC容器有什麼優點和缺點?
- 12. 在浮動控制器上使用單元測試來維護Flex項目
- 13. 在.NET中爲每個項目創建自動構建系統有什麼優點和缺點?
- 14. 在我們的表單中使用javascript有什麼優點和缺點?
- 15. ActiveX瀏覽器插件 - 有什麼優點/缺點
- 16. System.ComponentModel.DataAnnotations在自動控制器單元測試中的MethodAccessException,MVC
- 17. 使用ServiceStack服務與ASP.NET MVC控制器的優點/缺點?
- 18. 在JMeter中使用JMeterUtils.getProperty與__P有什麼優缺點?
- 19. has_many和has_one,有什麼優點/缺點?
- 20. py2exe有什麼優點/缺點
- 21. 使用/ clr編譯C++項目有什麼缺點:安全啓用單元測試?
- 22. Web控件對html服務器控件有什麼缺點嗎?
- 23. Webapi控制器單元測試中的自動映射器
- 24. 在ASP.NET Core項目中使用全小寫文件名有什麼缺點嗎?
- 25. 使用Signalr的優缺點是什麼
- 26. 使用現有代碼文件項目缺少Eclipse中的優化選項cdt
- 27. 使用彈簧分離測試和數據有什麼缺點?
- 28. 單元測試從單個測試中的所有控制器
- 29. 爲什麼在MiniTest中有兩種控制器測試?
- 30. 單元測試Windows Store項目中的自定義控件
的共享PDF是一個真正的指南! – RohanRasane