Scenario: Delete frooble
Given the following froobles:
|name|color|description|
|name 1|color 1|description 1|
|name 2|color 2|description 2|
|name 3|color 3|description 3|
|name 4|color 4|description 4|
When I delete the 3rd frooble
Then I should see the following froobles:
|name|color|description|
|name 1|color 1|description 1|
|name 2|color 2|description 2|
|name 4|color 4|description 4|
froobles_steps.rb
When /^I delete the (\d+)(?:st|nd|rd|th) frooble$/ do |pos|
visit froobles_url
within(“table > tr:nth-child(#{pos.to_i+1})”) do
click_link “Destroy”
end
end
Then /^I should see the following froobles:$/ do |froobles|
froobles.raw[1…-1].each_with_index do |row, i|
row.each_with_index do |cell, j|
response.should have_selector(“table > tr:nth-child(#{i+2}) >
td:nth-child(#{j+1})”) { |td|
td.inner_text.should == cell
}
end
end
end
I want to show a definition list instead of a table.
index.html
description 1
show | edit| destroy
description 2
show | edit| destroy
so I’m trying
manage_froobles.feature
Scenario: Delete frooble
Given the following froobles:
|description|
|description 1|
|description 2|
|description 3|
|description 4|
When I delete the 3rd frooble
Then I should see the following froobles:
|description|
|description 1|
|description 2|
|description 4|
froobles_steps.rb
When /^I delete the (\d+)(?:st|nd|rd|th) frooble$/ do |pos|
visit froobles_url
within(“dl:nth-child(#{pos.to_i})”) do
click_link “Destroy”
end
end
(this passes but I really don’t know if it’s “clicking” the destroy
link on the third list item.)
Then /^I should see the following froobles:$/ do |froobles|
tasks.raw[1…-1].each_with_index do |row, i|
response.should have_selector(“dl:nth-child(#{i+3})”) { |td|
td.inner_text.should == row
}
end
end
(this fails)
I can follow the logic of the table but for some reason I can’t write
this test for a list.
frooble_steps.rb:12
/Library/Ruby/Gems/1.8/gems/webrat-0.4.0/lib/webrat/core/
should see the following froobles:$/’
features/list.feature:15:in `Then I should see the following
froobles:’
Again any help will be appreciated.
You are expecting a list in your test but you are getting back a
string.
///ark
rspec-users mailing list [email protected]://rubyforge.org/mailman/listinfo/rspec-users
Thanks for all the help. With the
puts response.body
I was able so see what was going on. I know that I am now deleting the
third frooble!!!
Now when
Then I should see the following froobles:
I get this error
Then I should see the following froobles: # features/step_definitions/
frooble_steps.rb:12
expected: [“description 1”],
got: “description 1” (using ==)
Diff:
@@ -1,2 +1,2 @@
-[“description 1”]
+“description 1” (Spec::Expectations::ExpectationNotMetError)
./features/step_definitions/frooble_steps.rb:18:in Then /^I should see the following froobles:$/' /Library/Ruby/Gems/1.8/gems/webrat-0.4.0/lib/webrat/core/ matchers/have_xpath.rb:50:incall’
/Library/Ruby/Gems/1.8/gems/webrat-0.4.0/lib/webrat/core/
matchers/have_xpath.rb:50:in matches_nokogiri?' /Library/Ruby/Gems/1.8/gems/webrat-0.4.0/lib/webrat/core/ matchers/have_xpath.rb:15:inmatches?’
./features/step_definitions/frooble_steps.rb:17:in Then /^I should see the following froobles:$/' (eval):3:ineach_with_index’
./features/step_definitions/frooble_steps.rb:16:in each' ./features/step_definitions/frooble_steps.rb:16:ineach_with_index’
./features/step_definitions/frooble_steps.rb:16:in Then /^I should see the following froobles:$/' features/list.feature:15:inThen I should see the following
froobles:’
Again any help will be appreciated.
John
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.