Rspec 2 config:类型类型

时间:2011-06-03 21:59:39

标签: configuration devise helper rspec2

在我的spec_helper.rb中我有

config.include Devise::TestHelpers, :type => :controller

这样我就可以实际测试需要用户进行身份验证的控制器。但是,请求中同一类的规范也需要登录,否则测试将失败。我试过了

config.include Devise::TestHelpers, :type => :request

但这也不起作用。我似乎无法找到我可以传递给rspec include或extend方法的类型选项。我假设:模型和:视图会在那里,但其他我完全不确定。我应该使用什么,以便我的请求规范可以通过,并且有一个不同类型的列表:type?

2 个答案:

答案 0 :(得分:27)

此提交应有助于澄清:type选项。

https://github.com/rspec/rspec-rails/commit/fc5cdbb603f0e66f9f3d19a0a60a775e124fb218

:type => :request有效,所以我不确定为什么你的测试失败了。

哪个目录包含您的集成测试?通常,它们位于spec/requests或可能spec/integration

您可以使用其他选项指定何时包含Devise :: TestHelpers;选项为:example_group

config.include Devise::TestHelpers, :example_group => {
  :file_path => config.escaped_path(%w[spec (requests|integration)])
}

现在,Devise :: TestHelpers将包含在其文件位于指定路径内的示例组中。

确保将数组成员(requests|integration)替换为集成测试所在的文件夹名称。

答案 1 :(得分:4)

也许为时已晚,但对于任何需要它的人来说,将类型更改为:feature对我有用:

config.include Devise::TestHelpers, :type => :feature