2011-05-12 59 views
7

我已经花时间吸收后面编写测试代码的方法,我stumbled on a great post通过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(); 
    } 
} 

他接着指出:

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

我不精通Java的,但假设这可以在PHP被模仿,当然要去掉main()方法,但如果会的$ args来自于一个web应用程序的情况下?并初始化?

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

我也通过一些流行的代码库的代码翻找:Zend公司,交响乐团但这些框架都没有运行的应用程序,似乎“过于庞大太快了”,我掌握得一清二楚。此外,在这些框架中已经指出了有关测试实践的一些缺陷。如果可能的话,仅仅是一个小例子(即使不能运行)会让我更好地掌握从头开始创建小应用程序时正确的OOP代码布局实践。

回答

2

塞巴斯蒂安伯格曼,PHPUnit的作者,有一个示例应用程序来说明你在GitHub上问什么:

+0

很好的例子。引导/“主要方法”在'htdocs/index.php'。 – edorian 2011-05-12 08:12:14

+0

现在你提到它了,我记得他在他的帖子中提到那个应用程序。感谢芽! – stefgosselin 2011-05-12 08:38:12

+0

@Gordon https://github.com/thePHPcc/bankaccount不工作,您能否为我提供此项目的工作链接? – MKJ 2016-04-20 06:35:56