[rspec-users] Cucumber - step negating another expecting step
Matt Wynne
matt at mattwynne.net
Thu Apr 16 07:59:00 EDT 2009
On 16 Apr 2009, at 11:22, Joaquin Rivera Padron wrote:
> at the moment I do it this way, hiding the complexity out of the
> steps:
>
> Then /^I should see the people search form$/ do
> people_search_form_exists
> end
>
> Then /^I should not see the people search form$/ do
> people_search_form_exists "not"
> end
>
> and then the method:
>
> def people_search_form_exists negation = ""
> neg = "_not" unless negation.blank?
> response.send "should#{neg}".to_sym, have_tag('form#frmSearch')
> end
>
> this is a simple case, but what do you think about this? any blog
> post or so
Yeah this is an annoying one isn't it. I sometimes get around it by
going old-skool and pulling out the Test::Unit assertion methods
instead:
Then /^I (should|should not) see the people search form$/ do |
maybe|
has_matching_tags = current_dom.css('form#frmSearch').length > 0
assert has_matching_tags == (maybe == "should")
end
I think that would work. It's shorter, but is it much easier to
understand?
Matt Wynne
http://blog.mattwynne.net
http://www.songkick.com
More information about the rspec-users
mailing list