可测试代码 - 小应用示例

时间:2011-05-12 08:03:31

标签: php phpunit

我一直在花时间去理解编写可测试代码背后的方法,我和Misko Hevery的stumbled on a great post在那里他清楚地解释了如何在应用程序构建中处理依赖关系,例如使用工厂来加载所有对象和从而减少了使测试复杂化的依赖行。

在他的帖子中,他提供了一个最小但有见地的例子,说明了他如何在java中设置应用程序,以下无耻地引用了以下内容:

// Your main should look like this:
class Main {
  public static void main(String…args) {
    AppFactory factory = new AppFactory(args);
    MyApp app = factory.create();
    app.run();
    }
}
然后他说:

  

注意代码如何分为三个阶段。创建工厂,创建应用程序,运行应用程序这使得它可以测试。无论你的应用是什么,你都应该放弃这种模式。为了让单例到正确的位置,Factory只创建一个实例,然后在调用new时将该实例传递给所有类的构造函数。请参阅:http://misko.hevery.com/2009/03/30/collaborator-vs-the-factory/

我不熟悉Java,但是假设这可以在php中模仿,当然减去main()方法,但是在网络应用程序的上下文中$ args会来自哪里?并初始化?

我非常有兴趣在PHP中看到一个最小的可测试应用程序示例,甚至是一个人们认为测试效率高的应用程序的链接。初始化是我很好奇的,主要是。我的目的不是复制粘贴,而是从经验丰富的OOP编码器中学到的东西中学习。

我翻过几个流行代码库的代码:Zend,Symphony,但这些框架不是可运行的应用程序,看起来“太快太快”,无法让我掌握清晰的画面。此外,在有关测试实践的框架中也指出了一些不足之处。只是一个小例子,如果可能的话(即使不能运行)会让我在从头开始创建一个小应用程序时更好地掌握正确的OOP代码布局实践。

1 个答案:

答案 0 :(得分:2)

PHPUnit的作者Sebastian Bergmann有一个示例应用程序来说明你在GitHub上要求的内容: