Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Unable to setup Rspec & Capybara in Rails 3.2

I am creating a sample application for rspec testing, and I followed the below steps In Gemfile:

gem "rspec-rails", :group => [:test, :development]
group :test do
  gem "factory_girl_rails"
  gem "capybara"
  gem "guard-rspec"
end

Then executed the below steps:

  1. bundle.
  2. rails g rspec:install.
  3. mkdir spec/support spec/models spec/routing.

Added "require capybara/rspec" to my spec_helper file

Created a sample test as below:

require 'spec_helper'
describe "Users" do
  describe " List users" do
    it "List all users" do
      get users_path
      page.has_content?('List Users')
    end
  end
end

but it doesn't work, getting the below error


undefined local variable or method `page' 

* I suspect that I was not configured the capybara properly, Let me know the proper way to configure the capybara.

like image 646
loganathan Avatar asked Dec 25 '12 06:12

loganathan


2 Answers

Since you didn't specify a version for Capybara in your Gemfile, I assume you've got version >= 2.0, which means that any tests that use page should go under a spec/features directory.

Have a look at the following links for more information:

  • rspec-rails and capybara 2.0: what you need to know
  • rspec-rails gem Capybara page

If you don't want to use a spec/features directory, you should be able to mark a test as a feature in the following way:

require 'spec_helper'
describe "Users" do
  describe " List users", type: :feature do
    it "List all users" do
      get users_path
      page.has_content?('List Users')
    end
  end
end
like image 85
Paul Fioravanti Avatar answered Nov 10 '22 05:11

Paul Fioravanti


Got working after including the capybara dsl to spec helper

config.include Capybara::DSL
like image 24
loganathan Avatar answered Nov 10 '22 03:11

loganathan