2010-01-26 70 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。