Hi All, Wanted to put this idea forward, see what you think of it. I'm using Aslaks lorry feature to illustrate this. See http://github.com/aslakhellesoy/cucumber_rails/tree/master/features/step_definitions/lorry_steps.rb .
In particular within("table > tr:nth-child(#{pos.to_i+1})") do click_link "Destroy" and Then /^I should see the following lorries:$/ do |lorries| lorries.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 Now imagine this is a real project, and your designer comes along and decides that lorries really should be shown in a horizontal scrolling zoomable javascript widgity thing. Now out go the tables and the scenario breaks. However if we use something like within("#lorries > .lorry:nth-child # not tested this syntax, hope the meaning is clear then we have 1) Defined semantic tags that the designer should not touch 2) Not relied on any html elements that a designer might change 3) Created a step that works with the meaning of the UI not its presentation So what do you think? Andrew
_______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users