0

我的rspec目录开始变得有点杂乱,所以我将所有规范移到了一个cases目录中。这样做后 rspec 停止将*_controller_spec.rb其视为:type => :controller. 恢复这种行为的神奇方法是什么?

4

2 回答 2

1

相关评论形成了关于 rspec-rails github 页面的讨论

rspec-rails 为各种规范类型提供的集成基于包含示例组的模块,这些模块基于规范文件所在目录的约定。查看示例文件夹以查看每个规范包含的所有模块类型。example.rb根据 file_path 将其全部连接起来。

您需要自己进行此接线,因为您超出了 rspec-rails 的“正常”约定。您可以在每个示例组中手动包含模块,使用元数据以类型标记示例组,并基于类型进行包含,或者使用与 rspec-rails 类似的 file_path 约定方法。

所以基本上,复制这个文件并替换所有对by的specin 调用,然后将其粘贴到你的块中。可能有一种更简单的方法,这正是我在谷歌搜索几秒钟后发现的(我自己从未真正尝试过)。escaped_pathspec casesRSpec::configure

于 2012-11-10T23:42:44.250 回答
-1

如果您的意思是您有名为 like 的文件spec/foo_controller_spec.rb,那么“正确”的做法是将它们放在名为controllers. 所以你得到spec/controllers/foo_controller_spec.rb.

rspec-rails的自述文件详细介绍了哪种规范放在哪个目录中。

于 2012-11-10T22:30:56.680 回答