Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Where/how to include helper methods for capybara integration tests

I"m using capybara for my integration/acceptance tests. They're in /spec/requests/ folder. Now I have a few helper methods that I use during acceptance tests. One example is register_user which looks like this

def register_user(user)
  visit home_page
  fill_in 'user_name', :with => user.username
  fill_in 'password', :with => user.password
  click_button 'sign_up_button'
end

I want to use this method in several different acceptance tests (they're in different files). What's the best way to include this? I've tried putting it in spec/support/ but it hasn't been working for me. After spending some time on it I realized I don't even know if it's a good way of doing it so I figured I'd ask here.

Note: I am using rails 3, spork and rspec.

like image 883
Brand Avatar asked Nov 19 '11 07:11

Brand


2 Answers

Put your helper to the spec/support folder and do something like this:

spec/support/:

module YourHelper
  def register_user(user)
    visit home_page
    fill_in 'user_name', :with => user.username
    fill_in 'password', :with => user.password
    click_button 'sign_up_button'
  end
end

RSpec.configure do |config|
  config.include YourHelper, :type => :request
end
like image 106
Vasiliy Ermolovich Avatar answered Nov 13 '22 20:11

Vasiliy Ermolovich


I used the given solution by @VasiliyErmolovich, but I changed the type to make it work:

config.include YourHelper, :type => :feature
like image 23
Alter Lagos Avatar answered Nov 13 '22 22:11

Alter Lagos