我在网上多次阅读过,在处理PHP中的依赖时,最好使用依赖注入而不是Globals,因为它可以很容易地进行测试。有人可以解释这是如何使它容易测试的吗?我会用什么来做测试?
答案 0 :(得分:3)
我建议学习单元测试并查看一些可用于PHP的工具。我会推荐PHPUnit,但也有SimpleTest,我知道有些人更喜欢。
最大限度地减少可变数据的范围只是一个好主意。就测试而言,您可以编写执行小型原子功能的单元测试,而不必担心变量已被更改为其他操作的副作用。如果要测试对象的状态是a,b或c,您知道需要测试什么,因为您确切知道哪些操作可以影响该状态。如果您的州是全球性的,您不知道您的应用程序中的其他操作会对其产生什么影响,从而使您难以维护一堆意大利面条。
Joshua Bloch在Effective Java, Item 29中很好地解释了这一点。我建议阅读,即使他不使用PHP,这个概念也是一样的。
至于单元测试,我建议由The Pragmatic Programmers发布Pragmatic Unit Testing。有Java / JUnit和C#/ NUnit的版本,但这些概念完全适用于PHP,特别是如果你使用非常接近xUnit模式的PHPUnit。