Следующее работает просто отлично:
Then /^I should see a button called "([^\"]*)"$/ do |name|
response.should have_selector("li") do |li|
li.should have_selector("a") do |a|
a.should contain(name)
end
end
end
Теперь мне нужно дополнить его следующим шагом:
Then /^I should not see a button called "([^\"]*)"$/ do |name|
[snip...]
end
Стандарт «И я не должен видеть» не является удовлетворительным, поскольку он подберет целевую фразу в любом месте страницы, а не только внутри кнопок. Мне нужно убедиться, что ни одна кнопка с целевым текстом отсутствует.
Моим первым инстинктом было попробовать что-то вроде этого:
Then /^I should see a button called "([^\"]*)"$/ do |name|
response.should have_selector("li") do |li|
li.should have_selector("a") do |a|
a.should_not contain(name)
end
end
end
Но, конечно, это пройдет, пока на странице есть какая-либо кнопка, которая не содержит целевой текст, даже если есть также одна или несколько кнопок, которые включают целевой текст.
Ваши мысли?
Большое спасибо,
Стивен.