9

我正在使用 CakePHP 2.3,想知道如何使用测试驱动开发 (TDD) 正确地构建 CakePHP 网站。我已经阅读了有关测试的官方文档,以艰难的方式阅读了 Mark Story 的Testing CakePHP Controllers,并观看了 Mark Story 的Win at life with Unit testing幻灯片 PDF),但仍然感到困惑。我应该指出,我从来都不擅长用任何语言编写测试,也没有太多的经验,这可能会导致我的困惑。

我希望通过代码示例逐步了解如何使用 TDD 构建 CakePHP 网站。有关于 TDD 的文章,有关于使用 CakePHP 进行测试的文章,但我还没有找到一篇关于这两者的深入文章。我想要一些能在整个过程中握住我的手的东西。我意识到这是一项艰巨的任务,因为除非我的 Google-fu 让我失望,否则我很确定这样的文章还没有发表,所以我基本上是在要求你写一篇文章(或长堆栈溢出答案),这需要时间。因为这是一项艰巨的任务,所以我计划在这个问题上开始悬赏,一旦我能够这样做,以便更好地奖励某人的努力,如果有人愿意这样做的话。我感谢你的时间。

4

1 回答 1

10

TDD 有点谬误,因为它本质上只是在编写代码之前编写测试以确保您正在编写测试。

您需要做的就是在创建之前为某事物创建测试。这需要对您的用例进行思考和分析,以便编写测试。

因此,如果您希望某人查看数据,您将需要为控制器编写测试。它可能类似于testViewSingleItem(),您可能想要assertContains()一些您想要的数据。

一旦写好了,它应该会失败,然后你去写你的控制器方法以使测试通过。

就是这样。只需冲洗并为每个用例重复。这是单元测试。

其他测试(例如功能测试和集成测试)只是测试应用程序的不同方面。由您来考虑决定哪些测试对您的项目有用。

大多数情况下,单元测试是您可以测试应用程序的各个部分的方式。通常是对功能影响最大的部分,即“关键路径”。

这是一个非常有用的 TDD 教程。http://net.tutsplus.com/sessions/test-driven-php/

于 2013-05-02T07:57:35.580 回答