以下工作正常:
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
但是当然,只要页面上有任何不包含目标文本的按钮,即使还有一个或多个按钮确实包含目标文本,这也会过去。
你的意见?
非常感谢,
史蒂文。