On 27 Nov 2008, at 23:38, Michael Guterl wrote:

On Thu, Nov 27, 2008 at 12:58 AM, Andrei Erdoss <[EMAIL PROTECTED]> wrote:
Hello,

I am using Restful Authentication and I would like to login in Cucumber. I am having trouble keeping the user logged in. I tried finding a solution for
this everywhere. Only source is this article:
http://afreshcup.com/2008/10/09/authentication-in-cucumber-tests/

This is how my feature looks like:

Scenario: Register new place
   Given I am logged in as a user
   And I am on the new place page with parent place "Georgia"
   When I fill in "Name" with "Atlanta"
   And I press "Create"
   And I should see "Atlanta"

This is the step:

Given /I am logged in as a user/ do
  @current_user = Factory.define :user do |u|
    u.name 'the user'
    u.email '[EMAIL PROTECTED]'
    u.login  'the_login'
    u.password 'password'
    u.password_confirmation 'password'
  end
  visits "/login"
  fills_in("login", :with => "the_login")
  fills_in("password", :with => "password")
  clicks_button("Log in")
end

I don't think Factory.define returns the instance that you defined and
defining the factory certainly does not store the instance to the
database.

I'd recommend putting your factories in a separate file and require
them at the beginning of your step file.

+1!!

That's the whole point of the factory_girl - re-usable test data!

Once you've got that set up, a whole new world opens up.

For example, at Songkick, we have a step like this:

    Given /there is (?:one|an?) ([^ ]+)$/ do |entity_type|
      Factory(entity_type.underscore.to_sym)
    end

cheers,
Matt





You could then do @current_user = Factory(:user), which will actually
store the user to the database.

HTH,
Michael Guterl
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users

_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to