web-dev-qa-db-ja.com

Rspec 2 config:type types

私のspec_helper.rbには

config.include Devise::TestHelpers, :type => :controller

これにより、ユーザーの認証が必要なコントローラーを実際にテストできます。ただし、リクエスト内の同じクラスの仕様もサインインする必要があります。そうしないと、テストは失敗します。私はもう試した

config.include Devise::TestHelpers, :type => :request

しかし、それも機能しません。 rspecincludeまたはextendメソッドに渡すことができるタイプオプションが見つからないようです。 :modelと:viewはそこにあると思いますが、他のものは完全にわかりません。リクエスト仕様が合格できるようにするには何を使用する必要がありますか?:typeのさまざまなタイプのリストはありますか?

28
Aaron

このコミットは、: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)を、統合テストが配置されているフォルダー名に置き換えてください。

27
simeonwillbanks

手遅れかもしれませんが、それが必要な人にとっては、タイプを:featureに変更することでうまくいきました。

config.include Devise::TestHelpers, :type => :feature
4
Alter Lagos