Php 可测试代码-小型应用程序示例

Php 可测试代码-小型应用程序示例,php,phpunit,Php,Phpunit,我一直在花时间学习编写可测试代码背后的方法,Misko Hevery在那里清楚地解释了如何在应用程序构建中处理依赖关系,例如使用工厂加载所有对象,从而减少使测试复杂化的依赖关系 在他的帖子中,他给出了一个关于他如何用java建立应用程序的虽然很有见地但却很简单的例子,下面他无耻地引用了这个例子,并对这个家伙表示极大的敬意: // Your main should look like this: class Main { public static void main(String…args)

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

在他的帖子中,他给出了一个关于他如何用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();
    }
}
他接着说:

请注意代码是如何分为三个阶段的。创建工厂、创建应用程序、运行应用程序。这使得它是可测试的。无论你的应用程序是什么,你都应该放弃这种模式。要使单例正确放置,工厂只创建一个实例,然后在调用new时将该实例传递给所有类的构造函数。见:

我不精通Java,但假设这可以在php中模仿,当然不包括main()方法,但是在web应用程序的上下文中,$args从何而来?和初始化

我非常有兴趣在PHP中看到一个最小的可测试的应用程序示例,甚至可以看到被认为是测试有效的应用程序的链接。初始化是我最好奇的事情。我的目的不是复制粘贴,而是从有经验的OOP程序员那里学习


我确实翻阅了一些流行代码库的代码:Zend、Symphony,但这些框架不是可运行的应用程序,似乎“太大太快”,我无法掌握清楚的情况。此外,还指出了这些框架在测试实践方面的一些不足。举一个小例子,如果可能的话(即使不可运行),在从头开始一个小应用程序时,我可以更好地掌握正确的OOP代码布局实践。

PHPUnit的作者塞巴斯蒂安·伯格曼(Sebastian Bergmann)提供了一个示例应用程序来说明您在GitHub的要求:


很好的例子。bootstrap/“main method”位于
htdocs/index.php
。既然你提到了它,我记得他在帖子中提到了那个应用程序。谢谢你,巴德@戈登没有工作,你能为我提供这个项目的工作链接吗?