5059


Capybaraをインストールして`visit` メソッドを使おうとすると環境によって`undefined method `visit'`
が出てしまうようです。

このエラーが出た時は

[code]

    RSpec.configure do |config|
      config.include Capybara::DSL
    end
    
[/code]

を`rails_helper.rb`に追記すれば解決することが[こちらの回答](https://stackoverflow.com/questions/15148585/undefined-
method-visit-when-using-rspec-and-capybara-in-
rails)でわかったのですが、この設定が必要な場合とそうでない場合があるようです。

公式のgithubのReadmeにもこの事についての記述はありませんし例外的な処理だと思うのですが、どのような条件でこの記述が必須になるのでしょうか？


CC BY-SA 3.0
2015-01-10T00:51:14.437
4352
2015-01-22T07:27:52.443
2017-05-23T12:38:55.307
-1
3271
question
rspec capybara ruby-on-rails
`config.include Capybara::DSL`が必要になる条件


RSpecをお使いであれば`rails_helper.rb`や`spec_helper.rb`に以下の設定を追加していると思います。

[code]

    require 'capybara/rspec'
    
[/code]

この場合、`:type =>
:feature`でタグ付けされたexampleに対して、`Capybara::DSL`を自動的にincludeするような設定を読み込みます。  
<https://github.com/jnicklas/capybara/blob/2.4.4/lib/capybara/rspec.rb#L8>

ただし、デフォルトでは`Capybara::DSL`は`:type => :feature`でタグ付けされたexampleにしかincludeされません。

> If you are not using Rails, tag all the example groups in which you want to
> use Capybara with :type => :feature.

<https://github.com/jnicklas/capybara/blob/2.4.4/README.md#using-capybara-
with-rspec>

なので以下のような場合、`visit`などのメソッドを呼び出しても、`Capybara::DSL`がインクルードされておらず、エラーになる可能性があると思います。

  * `require 'capybara/rspec'`でRSpec用の設定を読み込んでいない
  * 上記のコードでRSpecの設定を読み込んでいるが、exampleが`:type => :feature`でタグ付けされていない場合


CC BY-SA 3.0
2015-01-22T07:27:52.443
5059
2015-01-22T07:27:52.443
2599
4352
answer