I’m new to Cucumber/Story Runner, but not so new to Rspec in general.
I googled a lot before
posting
I would like to mock openid consumer however I’m running out of ideas
how to access session.
I know I should avoid mocking in integration testing, but in this case
it makes sense.
Perhaps I can somehow mock session[:current_user_id] like it is
possible in rspec.
Given /I am logged in as admin/ do
user = User.find(:first)
session.stub!(:current_user_id).and_return(user.id)
end
Any hints how it can solve my mocking in Cucumber would be welcome!
On Mon, Sep 1, 2008 at 3:31 PM, aslak hellesoy [email protected] wrote:
it makes sense.
Mocking in Cucumber works just like in RSpec. Are you getting any errors?
The session that RailsStory (in ‘spec/story’) and in cucumber exposes
is an ActionController::Integration::Session, not the Hash you get
from ActionController::Base.session (as is the case in
ControllerExampleGroup or rails functional tests). So you’re not
setting mock expectations on the object you think you are.
I haven’t worked with open ID, nor do I know what approach your app
uses to communicate with open ID, but if you wrap that access in a
method, then you can just override that method in your steps file (or
any other .rb file as long as you require it) and have it set up state
the way you want it.
Just for the record, first I override methods and it really
worked
However quite soon I realized, why not to use local openid server
instead. So I picked up masquerade[1] as local openid server. Wow, now
it feels much cleaner and more real to run features.