2

我想在我的控制器规范之外的一些规范中包含请求帮助器(来自 ActionDispatch::Integration::RequestHelpers [ApiDock] ,如 post 和 xhr 方法)。问题是这些请求助手仅包含在规范/控制器中以及描述控制器时。我必须在这些规范中包含/要求什么?我正在使用 RSpec 2 和 Rails 3。

4

2 回答 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 年,当然很多事情都发生了变化,但是由于我在搜索如何使其他测试表现得像控制器测试(因此有postget方法等)时偶然发现了这个问题,所以我想指出这个解决方案适用于 RSpec 3:如果将其添加到spec_helper

 config.include RSpec::Rails::RequestExampleGroup, type: :request, example_group: { file_path: /spec\/(api|integration)/

它将使给定路径中的所有测试都支持控制器方法。

于 2014-11-14T09:32:00.820 回答