我正在使用 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/