Test Driven Development in PHP我是使用PHP的网络开发人员。 我在C#桌面应用程序中使用"测试驱动开发"的经验有限。 在这种情况下,我们将nUnit用于单元测试框架。 我想开始在新项目中使用TDD,但是我真的不确定从哪里开始。 您对基于PHP的单元测试框架有什么建议?对于TDD概念的新手,有哪些好的资源? 我同时使用了PHPUnit和SimpleTest,并且发现SimpleTest更易于使用。 就TDD而言,从最纯粹的意义上来说我还没有多大运气。我认为这主要是时间/纪律问题。 在事实之后添加测试是很有用的,但是我最喜欢做的事情是使用编写SimpleTest测试来测试必须修复的特定错误。这使得验证事物是否确实固定并保持固定非常容易。 我强烈建议肯特·贝克(ISBN-10:0321146530)进行"测试驱动开发"。它不是专门为PHP编写的,但是概念已经存在,应该可以轻松地翻译成PHP。 PHPUnit是一个标准,但有时也会令人不知所措,因此,如果您发现它太复杂了,请查看phpt以开始使用。在其中编写测试非常非常容易。对于任何程序员来说,都是没有脑子的。 并回答您的TDD问题-我不确定TDD是否在PHP空间中使用了widley。我可以看到快速的应用程序开发和TDD有点冲突(严格来说是恕我直言)。 TDD要求您全面了解所构建的内容,并预先编写测试,然后实施代码以使测试通过。 因此,例如,我们要做的是在完成后编写大量测试。这并不总是最好的方法,因为您有时最终会通过虚假测试,但并不是真正有用,但至少可以扩展。在内部,我们继续进行测试,并基本上针对发现的每个错误编写测试。这就是它变得更牢固的方式。 我个人更喜欢SimpleTest。有一个命令行测试运行程序和基于Web的测试运行程序,甚至还有一个Eclipse插件,可让您从IDE本身运行单元测试。我发现Zend与PHPUnit的连接更难工作,尤其是在调试器中。 我们内部使用SimpleTest的方式是使用我们自己编写的连续集成脚本。每次我们向SVN签入功能时,我们都会包含单元测试。 CI脚本大约每隔一个小时运行一次,并调用运行我们所有单元测试的命令行PHP脚本。如果有任何休息,我会收到一封电子邮件。这是减少系统错误的好方法。 但是,您可以轻松地使用Phing之类的工具在cron作业上或通过SVN检入挂钩自动运行测试。 实际上,如果您想直接与我联系以寻求进一步的帮助,可以通过SO上的个人资料与我联系。我很乐意为您提供帮助。 SimpleTest是一个很棒的系统。我大约5个月前开始使用它,从未听说过TDD,SimpleTest易于学习,但功能仍然很强大。至于资源,我目前正在阅读肯特·贝克(Kent Beck)的《 TDD示例》,这很好。 您应该看到的另一个现代工具是Codeception。它比PHPUnit简化得多,并包含了场景驱动的方法,这对于从测试生成文档非常有用。 您应该研究PHPUnit,它看起来很像nUnit。
测试驱动开发是一种始终在代码之前编写测试的方法。 永远记住如果测试是在开发之后编写的,那么它们是无用的。因此,如果您想编写单元测试,则必须使用TDD |