【问题标题】:Test-Driven Development in CakePHPCakePHP 中的测试驱动开发
【发布时间】:2013-04-25 02:40:27
【问题描述】:

我正在使用 CakePHP 2.3,想知道如何使用测试驱动开发 (TDD) 正确地构建 CakePHP 网站。我读过the official documentation on testing,读过Mark Story 的Testing CakePHP Controllers the hard way,看过Mark Story 的Win at life with Unit testing (PDF of slides),但仍然很困惑。我应该指出,我从来都不擅长用任何语言编写测试,也没有很多经验,这可能会导致我的困惑。

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

【问题讨论】:

  • 你真正想要什么,我的意思是深度。你能举一个例子项目来帮助我理解你的意思比深入吗?
  • 而且它需要的时间可能比bonty结束的时间还要长。

标签: cakephp testing tdd


【解决方案1】:

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

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

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

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

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

功能测试和集成测试等其他测试只是测试应用程序的不同方面。您可以思考决定哪些测试对您的项目有用。

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

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

【讨论】:

  • 感谢您的宝贵时间和建议!该链接也很有帮助。不过,我仍然有兴趣看到使用 CakePHP 深入了解 TDD。
  • 在 TDD 和 CakePHP 之间没有真正的“东西”。您只需学习 TDD 理论,学习 PHP Unit,然后编写一些测试。这本书有一个关于测试的好章节。 book.cakephp.org/2.0/en/development/testing.html
  • 还可以查看 CakePHP 本身的源代码。在lib/Cake/Test 目录中,您会找到框架本身的所有单元测试。您可以将这些用作您自己的测试的示例,例如,了解如何创建单元测试来测试控制器或模型
  • 我知道你们两个来自哪里,但是如果你看看我问过的这两个问题(12),你会发现这对我来说仍然很困惑,即使在阅读了文档之后。这就是我想看指南的原因。
  • 这也值得一提,虽然我没看过。 leanpub.com/cakephpunittesting
猜你喜欢
  • 2011-07-29
  • 2010-12-26
  • 2010-09-07
  • 1970-01-01
  • 2011-09-09
  • 2012-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多