[rspec-users] [cucumber] noob Q deleteing from a list.

John Ivanoff john.ivanoff at gmail.com
Wed Feb 25 18:03:00 EST 2009


manage_froobles.feature
--------------------------------------
  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
--------------------------------------
<dl>
  <dt>description 1</dt>
  <dd>show | edit| destroy</dd>
  <dt>description 2</dt>
  <dd>show | edit| destroy</dd>
</dl>

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.

Any help would be appreciated.

John


More information about the rspec-users mailing list