PHPUnit测试 - 控制器或模型

时间:2013-09-18 23:23:40

标签: php unit-testing laravel

我正在使用Laravel框架,正在阅读由Jeffrey Way解码的Laravel Testing。它详细介绍了如何测试以及测试的原因,并讨论了测试任何事物和所有内容。

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

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

关于控制器测试的部分显示您可以测试控制器以进行验证,重定向,模型保存等。看起来很多都是重复的,如果我有测试则不需要测试验证和保存已经在模型级别上执行此操作。

1 个答案:

答案 0 :(得分:2)

我想问的问题是:

  • Q值。假设您的所有其他组件都运行良好,然后有一天您会因任何原因想要更改控制器,可能会添加新组件或其他任何内容。现在,在此更改之后,此控制器的旧功能突然中断。您是否容易记住您设计和修复它的方式?或者,您是否愿意通过运行少量测试来告诉您确切的位置,从而避免您的头痛?

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

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

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

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

理论上很棒,但我自己problems with tests in practice.