On 5 Oct 2009, at 09:49, Zoltan Penzeli wrote:
I have no idea if this will work, but you could try to sense for the
table row you want to skip in a Before block, then call skip_invoke!
on it:
Before(scenario_or_example_row) do
if the_one_to_skip?(scenario_or_example_row)
scenario_or_example_row.skip_invoke!
end
end
Sorry, my example is bollocks. Try this instead:
Before do |scenario_or_example_row|
if the_one_to_skip?(scenario_or_example_row)
scenario_or_example_row.skip_invoke!
end
end
So the thing yielded to the Before block is the Scenario object if
you're in a Scenario, or the OutlineTable::ExampleRow if you're in an
outline table. You can call skip_invoke! on either of those objects to
tell them not to invoke their step definition.
Well, this isn't really working (or I might forgot something to
define,
but from http://wiki.github.com/aslakhellesoy/cucumber/hooks - it
seems
that 'Before' is operating with tags (and hooks) - see
This is in fact be useful, because we are able execute code before
each
line of the properly tagged Scenario Outline... but... I still don't
know the method/variable to access the _current line_ of the example
table.
So translated into the code, an example:
x.feature:
...
@tagged
Scenario Outline: file reader
Given I read <file>
Then I want to have <content>
Examples:
| file | content |
| x.txt | Text |
| y.txt | Other text |
***************************
step_definitions/x.rb
Before('@tagged') do
# how to access current row???
if row[0] == $external_filename
# how to properly skip current line???
row.skip_invoke!
end
end
Given /I read (.+)/ do |fileName|
#open and read fileName
#fill @file_content
end
Then /I want to have (.+)/ do |content|
#assert 'content' against @file_content
end
**********************************
So we need something for 'row[0]' and a proper way to skip the current
line...
I now that this example is not a good real life situation (it would be
easier to use multiline step arguments), but we would like to use
Cucumber driven by an external source (executing only one line from
each
example table) AND maintaining the ability to run it independently
(all
lines)
I hope this cleared up the things a bit more...
Thanks for your ideas!
--
Posted via http://www.ruby-forum.com/.
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users
cheers,
Matt
http://mattwynne.net
+447974 430184
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users