おいちゃんと呼ばれています

ウェブ技術や日々考えたことなどを綴っていきます

capybara を使っているのに「undefined method `visit'...」エラーが出た場合の対処

RailsRSpec + capybara のテストをやっていて、下記のエラーが出ました。

Failure/Error: sign_in user NoMethodError: undefined method `visit' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_3::Nested_1:0x007fcc95472cf0> <<

使用しているバージョンは下記のとおりです。

capybara が読み込まれていない感じのエラーですが、spec/spec_helper.rb には、ちゃんと capybara を使う旨記述していて、というか、他のテストでも capybara をガンガン使用していて、なんだろこれ?とか騒いでいたら、

見かねた社内の人が

おいちゃん、capybara は、spec/requests 配下のテストでしか使えないよ <<

と教えてくれました。ああ、たしかに spec/views 配下のテストに書いてました。

あとで公式サイトを見てみたら、下記のように書いていました。

If you are using Rails, put your Capybara specs in spec/requests or spec/integration. <<

というわけで公式サイト(もしくはソース)読もうねという話。誰かがこのページを見て、同じ過ちを回避できたら、僕も救われます。

ではでは。

*参考サイト

-jnicklas/capybara