ruby-on-railssessioncucumberintegration-testingclearance

Cucumber and Clearance: current_user in steps


What I what to accomplish is to use (rely on) current_user method while defining Cucumber steps. I'm using Clearance in my project.

First of all I tried to use sign_in but it didn't work (I guess Cucumber World doesn't know about Clearance methods...).

So how do I make Cuckes recognize current_user and sign_in/sign_out methods?


Solution

  • Your Cucumber features should be driving your application through the public user interface. Something like:

    Given /^I am signed in as "([^\"]*)"%/ do |username|
      visit 'sign_in'
      fill_in 'Username', :with => username
      click 'Sign In'
    end
    

    Since the current_user method isn't available to the browser, you shouldn't be using it in your spec.

    You could fake it in your steps by storing @current_user in the above step and then providing an attribute reader for it.