我想在我的控制器规范之外的一些规范中包含请求帮助器(来自 ActionDispatch::Integration::RequestHelpers [ApiDock] ,如 post 和 xhr 方法)。问题是这些请求助手仅包含在规范/控制器中以及描述控制器时。我必须在这些规范中包含/要求什么?我正在使用 RSpec 2 和 Rails 3。
问问题
1316 次
2 回答
2
我刚刚通过在我的验收助手中包含以下代码解决了这个问题。如果您不是 Steak,那么只需将其放在规范助手中或从其他地方要求它。post 和 xhr 方法现在在该规范中可用,无论它是什么规范或您所在的目录。
代码来源于 RSpec::Rails::RequestExampleGroup
RSpec::Core::ExampleGroup.class_eval 做 包括 ActiveSupport::Concern 包括 ActionDispatch::Integration::Runner 包括 RSpec::Rails::BrowserSimulators 定义应用 ::Rails.应用程序 结尾 def last_response 回复 结尾 结尾
于 2010-11-17T09:05:47.240 回答
1
我知道已经过了 4 年,当然很多事情都发生了变化,但是由于我在搜索如何使其他测试表现得像控制器测试(因此有post
和get
方法等)时偶然发现了这个问题,所以我想指出这个解决方案适用于 RSpec 3:如果将其添加到spec_helper
config.include RSpec::Rails::RequestExampleGroup, type: :request, example_group: { file_path: /spec\/(api|integration)/
它将使给定路径中的所有测试都支持控制器方法。
于 2014-11-14T09:32:00.820 回答