If you look at the stacktrace carefully:
And I am exists as a parent # features/step_definitions/kid_steps.rb:106
undefined local variable or method `role' for #<Cucumber::Rails::World:0xc4722f8> (NameError)
./features/step_definitions/event_steps.rb:10:in `create_visitor'
./features/step_definitions/event_steps.rb:14:in `create_user'
./features/step_definitions/kid_steps.rb:107:in `/^I am exists as a parent$/'
features/manage_kids.feature:11:in `And I am exists as a parent'
you will find the error message undefined local variable or method 'role'
and the location of the source code that is raising the error ./features/step_definitions/event_steps.rb:10
even with the method that is executed create_visitor
.
When looking at the source that you posted:
def create_visitor
@visitor ||= { :email => "user@example.com",
:password => "test123",
:password_confirmation => "test123",
:role => Role.find_by_name(role.to_s)} # i assume that this is line 10!
end
you can see that you are calling role
. From the code that you post, there is no point where role
is defined. There has to be a variable or a method with that name. Maybe it's just a typo and you mean an instance variable @role
.
there is nothing more that we can help you, it's all in your code...