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

aslak hellesoy aslak.hellesoy at gmail.com
Thu Feb 26 10:59:18 EST 2009


On Thu, Feb 26, 2009 at 12:03 AM, John Ivanoff <john.ivanoff at gmail.com> wrote:
> 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.)
>

3 possibilities:

1) It's clicking the right link, but your next page renders wrong
2) It's clicking the right link, but your next page renders correctly,
but your Then is buggy
3) It's not clicking the right link

In order to find out which one it is...

> Then /^I should see the following froobles:$/ do |froobles|

# Do this here:
puts response.body

Aslak

>  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
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>


More information about the rspec-users mailing list