2

リクエスト ヘルパー (ActionDispatch::Integration::RequestHelpers [ApiDock]から、post メソッドや xhr メソッドなど) をコントローラー仕様以外の仕様にも含めたいと思います。問題は、これらのリクエスト ヘルパーが spec/controller にのみ含まれており、コントローラーが記述されている場合です。これらの仕様には何を含める/要求する必要がありますか? RSpec 2 と Rails 3 を使用しています。

4

2 に答える 2

2

以下のコードを受け入れヘルパーに含めることで問題を解決しました。Steak でない場合は、spec ヘルパーに入れるか、別の場所から要求するだけです。post および xhr メソッドは、仕様や現在のディレクトリに関係なく、その仕様で使用できるようになりました。

コードは RSpec::Rails::RequestExampleGroup から派生しています

RSpec::Core::ExampleGroup.class_eval do
  ActiveSupport::Concern を含める
  ActionDispatch::Integration::Runner を含める
  RSpec::Rails::BrowserSimulator を含める

  デフアプリ
    ::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 に答える