我想在我的控制器规范之外的一些规范中包含请求助手(来自ActionDispatch :: Integration :: RequestHelpers [ApiDock],如post和xhr方法)。问题是这些请求助手只包含在spec / controller中并且描述了控制器。 在这些规格中我需要包含/要求什么? 我正在使用RSpec 2和Rails 3。
答案 0 :(得分:2)
我刚刚通过在接受帮助中包含以下代码解决了这个问题。如果你不是牛排,那么只需将它放在规范帮手或从其他地方需要它。 post和xhr方法现在可以在该规范中使用,无论它是什么规范或您在什么目录中。
代码派生自RSpec :: Rails :: RequestExampleGroup
RSpec::Core::ExampleGroup.class_eval do include ActiveSupport::Concern include ActionDispatch::Integration::Runner include RSpec::Rails::BrowserSimulators def app ::Rails.application end def last_response response end end
答案 1 :(得分:1)
4年后我知道了很多东西当然已经改变了,但是因为我在搜索如何使其他测试行为像控制器测试时偶然发现了这个问题(因此有post
和{ {1}}方法等)我想指出这个适用于RSpec 3的解决方案:如果你将它添加到get
spec_helper
它将使给定路径中的所有测试都支持控制器方法。