控制器测试和存根过滤器/操作。指南是什么?

时间:2015-10-23 15:51:58

标签: ruby-on-rails ruby ruby-on-rails-4 testing rspec

将控制器规格中的过滤器/操作存根视为一种良好做法吗?

我们说我几乎在每个控制器上都有authorize!过滤器。我可以在所有控制器规范中将其存根,或者如果它具有过滤器/操作行为,我应该分享测试每个操作的示例吗?

当控制器上有十几个过滤器/操作(也是继承的......)时,事情变得一团糟。

1 个答案:

答案 0 :(得分:2)

恕我直言,你应该只在需要时存根。一些很好的理由是:

  • 测试取决于您无法控制的一些记录良好的外部API
  • 要存根的操作/方法非常慢,并且您有另一个覆盖它的测试(即它是测试的依赖,而不是测试的主题
  • 您正在构建一个尚未存在的新功能和存根代码,并且您打算在实现代码时删除存根

“混乱”不是一个好理由。 RSpec提供了大量工具来清理测试代码并使其更具可读性。花一些时间来改进测试,你可能会发现减少对事情的渴望。