私のspec_helper.rbには
config.include Devise::TestHelpers, :type => :controller
これにより、ユーザーの認証が必要なコントローラーを実際にテストできます。ただし、リクエスト内の同じクラスの仕様もサインインする必要があります。そうしないと、テストは失敗します。私はもう試した
config.include Devise::TestHelpers, :type => :request
しかし、それも機能しません。 rspecincludeまたはextendメソッドに渡すことができるタイプオプションが見つからないようです。 :modelと:viewはそこにあると思いますが、他のものは完全にわかりません。リクエスト仕様が合格できるようにするには何を使用する必要がありますか?:typeのさまざまなタイプのリストはありますか?
このコミットは、: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)
を、統合テストが配置されているフォルダー名に置き換えてください。
手遅れかもしれませんが、それが必要な人にとっては、タイプを:feature
に変更することでうまくいきました。
config.include Devise::TestHelpers, :type => :feature