Rails 3 + Devise + RSpec: undefined method 'visit'

I met a strange problem. I have never worked with a gem before. So, I'm trying to write a simple RSpec test:

require 'spec_helper' describe "Admins" do before(:each) do @email = " test@test.ru " user = FactoryGirl.create(:user, :email => @email ) end describe "sign in/out" do describe "success" do it "should sign a user in and out" do visit new_user_session_path end end end end 

And I get this error:

  1) Admins sign in/out success should sign a user in and out Failure/Error: visit new_user_session_path NoMethodError: undefined method `visit' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_1::Nested_1:0x007fb2b7e393d0> # ./spec/requests/admins_spec.rb:12:in `block (4 levels) in <top (required)>' Finished in 0.05646 seconds 

My Factory:

 FactoryGirl.define do factory :user do |user| user.admin true user.password "qwerty" user.sequence(:email) { |n| "user#{n}@user.com" } end end 

Routes

  new_user_session GET /users/sign_in(.:format) devise/sessions#new user_session POST /users/sign_in(.:format) devise/sessions#create destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy user_password POST /users/password(.:format) devise/passwords#create new_user_password GET /users/password/new(.:format) devise/passwords#new edit_user_password GET /users/password/edit(.:format) devise/passwords#edit PUT /users/password(.:format) devise/passwords#update cancel_user_registration GET /users/cancel(.:format) devise/registrations#cancel user_registration POST /users(.:format) devise/registrations#create new_user_registration GET /users/sign_up(.:format) devise/registrations#new edit_user_registration GET /users/edit(.:format) devise/registrations#edit PUT /users(.:format) devise/registrations#update DELETE /users(.:format) devise/registrations#destroy 
+4
source share
3 answers

visit is the capybara method, not Rspec. You must add the capybara gem to your Gemfile, run bundle and require 'capybara/rspec' in spec_helper as pointed out by ArcaneRain.

+4
source

Move all tests that use capybara from spec / queries to spec / features.

http://alindeman.github.com/2012/11/11/rspec-rails-and-capybara-2.0-what-you-need-to-know.html

+19
source

You must add Capybara DSL to spec_helper

 . . . RSpec.configure do |config| . . . config.include Capybara::DSL end 
+2
source

All Articles