PHPUnit 测试 - Controller 或模型

标签 php unit-testing laravel

我正在使用 Laravel 框架,并且正在阅读 Jeffrey Way 的 Laravel 测试解码。它深入探讨了如何测试以及为什么要测试,并讨论了测试任何事物。

我的问题是这样的:如果我在模型上执行大部分测试,我是否还需要深入测试我的 Controller ?

例如,我的模型测试验证,它测试保存、散列密码、杂项功能......所有这些都可以由 Controller 调用。我的 Controller 只是接收请求,调用模型方法,然后提供 View 。

Controller 测试部分显示您可以测试 Controller 的验证、重定向、模型保存等。看起来很多都是重复的,如果我有测试,应该不需要测试验证和保存已经在模型级别上做到了这一点。

最佳答案

我想要问的问题是:

  • 问。假设您的所有其他组件都工作得很好,然后有一天您会出于某种原因想要更改 Controller ,也许添加新组件或其他什么。现在,经过此更改后,该 Controller 的旧功能突然被破坏了。您是否容易记住设计和修复它的方式?或者您愿意通过运行一些测试来告诉您到底哪里出了问题,从而避免一些头痛?

如果您相信鲍勃叔叔在他的精彩著作《干净代码》中给出的建议,那么在编写失败的测试之前,您“不允许”编写一行代码。

以下是他的一些视频,强烈推荐:

Robert C Martin(Uncle Bob) -Clean Architecture and Design... - Video

Ruby Midwest 2011 - Keynote: Architecture the Lost Years... - Video

理论上效果很好,但我自己有problems with tests in practice.

关于PHPUnit 测试 - Controller 或模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18883949/

相关文章:

php - 在 Laravel 4 中将尾部斜杠附加到 url

javascript - 在 jquery codeigniter 中上传图像后进行编辑

c# - 如何断言顺序不重要的 IEnumerable 参数?

laravel - 在使用 'with' 子句的查询中使用 Laravel 的 toSql

mysql - Eloquent 查询不选择特定的 ID

php - 如何使用 'where' 等 Eloquent 方法从对象/集合中获取特定日期

php - 使用从数组中提取的 ID 向用户发送电子邮件

php - CakePHP 3.0 - 正则表达式验证

java - 是否有一个等效的 doCallRealMethod 用于 spy (又名 doCallMockMethod)?

unit-testing - 在哪里可以找到 MSpec 文档?