我在網上讀過很多次,當處理PHP中的依賴關係時,使用依賴注入代替Globals是很好的,因爲它使得它易於測試。有人可以解釋這是如何使它容易測試?我會用什麼來做測試?如何測試PHP類/對象?
4
A
回答
3
我建議學習單元測試,並看看可用於PHP的一些工具。我會推薦PHPUnit,但也有SimpleTest,我知道有些人更喜歡。
最小化可變數據的範圍通常是一個好主意。就測試而言,您可以編寫單元測試,這些單元測試可以運行小的原子性功能塊,而無需擔心變量作爲其他操作的副作用發生了變化。如果你想測試一個對象的狀態是a,b或c,你知道你需要測試什麼,因爲你確切知道哪些操作會影響狀態。如果您的國家是全球性的,您不知道您的應用程序中的其他操作會對其造成什麼影響,從而使您很難保持一堆意大利麪條。
Joshua Bloch在Effective Java, Item 29中很好地解釋了這一點。我建議你閱讀一下,即使他不使用PHP,這個概念也是一樣的。
至於單元測試,我建議由Pragmatic Programmers發佈Pragmatic Unit Testing。有Java/JUnit和C#/ NUnit的版本,但是這些概念完全適用於PHP,特別是如果您使用緊跟xUnit模式的PHPUnit。
相關問題
- 1. PHP如何測試標準類對象的值
- 2. PHP實現測試對象
- 3. lodash如何測試對象
- 4. 如何測試OAuth對象?
- 5. 如何測試對於PowerPoint SlideShowWindow對象?
- 6. 測試對象
- 7. 測試,如果對象是在對象
- 8. PHP測試的子對象爲空值
- 9. 如何使用Espresso測試抽象類?
- 10. 如何測試抽象類的方法?
- 11. 如何正確測試抽象類
- 12. Findbugs雖然findbugs對象的測試類
- 13. 測試類中的對象實例化
- 14. Java測試與mockito:模擬類對象
- 15. Apex測試類對象創建
- 16. 如何測試com對象註冊?
- 17. karma-jasmine - 如何測試返回對象
- 18. 如何測試對象字面在IE8
- 19. 單元測試 - 如何快照對象?
- 20. 如何測試iOS中的空對象?
- 21. 摩卡/柴:如何測試對象
- 22. 如何JUnit不變地測試對象?
- 23. 如何測試服務對象
- 24. 如何測試在PHPUnit的mock對象
- 25. 如何使用ScalaTest測試Dao對象
- 26. 如何爲poco對象創建測試
- 27. 如何構建多層測試對象?
- 28. 測試抽象類
- 29. 抽象測試類
- 30. 我如何測試json對象從php web servicec是空的?