2010-01-26 48 views
4

我在網上讀過很多次,當處理PHP中的依賴關係時,使用依賴注入代替Globals是很好的,因爲它使得它易於測試。有人可以解釋這是如何使它容易測試?我會用什麼來做測試?如何測試PHP類/對象?

回答

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。