On Fri, Dec 19, 2008 at 1:09 AM, Andrew Premdas <[email protected]>
wrote:
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?
Feel free to submit a patch.
Aslak
I agree with your sentiments. It's how I access (and encourage others
to access) the views (both in step definitions and in view specs).
--
Zach Dennis
http://www.continuousthinking.com
http://www.mutuallyhuman.com
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users