1

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

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

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

关于控制器测试的部分显示您可以测试控制器的验证、重定向、模型保存等。似乎很多都是重复的,如果我有测试,则不需要测试验证和保存已经在模型级别。

4

1 回答 1

2

我想要问的问题是:

  • 问:假设您的所有其他组件都运行良好,然后有一天您会出于任何原因想要更改控制器,可能会添加新组件或其他任何东西。现在在这个改变之后,这个控制器的旧功能突然被破坏了。您是否容易记住设计和修复它的方式?或者你宁愿通过运行一些测试来告诉你它到底在哪里被破坏了?

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

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

Robert C Martin(鲍勃叔叔)-清洁建筑和设计... - 视频

Ruby Midwest 2011 - 主题演讲:失落的建筑... - 视频

理论上效果很好,但我在实践中遇到了测试问题。

于 2013-09-19T01:34:42.380 回答