I am bit new to Cucumber and Webrat and I have one issue that I can’t
seem
to fix on my own. I would appreciate your help.
I have a controller called places and a model called Place. I use the
acts_as_tree plugin in order for a place to have more places within it.
Ex.
Georgia would have Cobb County, Cobb County would have Smyra City.
This is how my controller looks for adding a new place:
respond_to do |format|
if @place.save
flash[:notice] = 'Place was successfully created.'
format.html { redirect_to(@place) }
else
format.html { render :action => "new" }
end
end
end
I have created the cucumber feature also, but it errors out:
Scenario: Register new place
Given I am on the new place page with parent place “Georgia”
When I fill in “Name” with “Atlanta”
And I press “Create”
Then I should see “Atlanta”
For the first line starting with “Given”, I tried to put this step, but
it
errors out with Couldn’t find Place with ID=1
(ActiveRecord::RecordNotFound)
Given /I am on the new place page with parent place “(.*)”/ do |name|
visits “/places/new?parent_id=1”
Place.create! :name => name, :parent_id => 1
end
What am I doing wrong or how should I proceed with writing these steps
for
this action?
I am bit new to Cucumber and Webrat and I have one issue that I can’t
seem
to fix on my own. I would appreciate your help.
I have a controller called places and a model called Place. I use the
acts_as_tree plugin in order for a place to have more places within it.
Ex.
Georgia would have Cobb County, Cobb County would have Smyra City.
This is how my controller looks for adding a new place:
respond_to do |format|
if @place.save
flash[:notice] = 'Place was successfully created.'
format.html { redirect_to(@place) }
else
format.html { render :action => "new" }
end
end
end
I have created the cucumber feature also, but it errors out:
Scenario: Register new place
Given I am on the new place page with parent place “Georgia”
When I fill in “Name” with “Atlanta”
And I press “Create”
Then I should see “Atlanta”
For the first line starting with “Given”, I tried to put this step, but
it
errors out with Couldn’t find Place with ID=1
(ActiveRecord::RecordNotFound)
Given /I am on the new place page with parent place “(.*)”/ do |name|
visits “/places/new?parent_id=1”
Place.create! :name => name, :parent_id => 1
end
What am I doing wrong or how should I proceed with writing these steps
for
this action?
visits “/places/new?parent_id=1”
Place.create! :name => name, :parent_id => 1
end
What am I doing wrong or how should I proceed with writing these steps for
this action?
Try this:
Given /I am on the new place page with parent place “(.*)”/ do |name|
parent = Place.create! :name => name
visits “/places/new?parent_id=#{parent.id}”
end
I am using Restful Authentication and I would like to login in Cucumber.
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
places controller
before_filter :login_required, :only => [:create]
GET /places/new
def new @place = @parent_place.children.create
respond_to do |format|
format.html # new.html.erb
end
respond_to do |format|
if @place.save
flash[:notice] = 'Place was successfully created.'
format.html { redirect_to(@place) }
else
format.html { render :action => "new" }
end
end
end
The “Given I am logged in as a user” step passes, along with all the
steps,
except the last one (And I should see “Atlanta”). The problem is that
the
login page is shown and not the show page with the new place created.
What do I have to set in Cucumber so that it acts as if the user is
logged
in? In know that in Rspec :login_required should return true. What’s the
equivalent of that in Cucumber?
Thank you
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.