检查黄瓜表格行中的值
我想检查数据表中的值是否正确,因此我所做的是选择所有行并检查是否某个tr has_content对象名称和值我是检查。问题是,我似乎无法在黄瓜做return
:检查黄瓜表格行中的值
Then /^I should see "([^"]*)" beside "([^"]*)"$/ do |value, name|
all("tr").each do |tr|
if tr.has_content?(value) && tr.has_content?(name)
assert true and return
end
end
assert false
end
我想类似的东西。当我找到一个有两个值的行时,这意味着它是正确的,我应该停止循环,并返回true(否则它将继续到最后)
我该如何去解决这个问题?
以及它似乎是一个肮脏的黑客,但我只是用一个变量来检查:
Then /^I should see "([^"]*)" beside "([^"]*)"$/ do |value, name|
has_value_and_name = false
all("tr").each do |tr|
if tr.has_content?(value) && tr.has_content?(name)
has_value_and_name = true
end
end
assert has_value_and_name
end
我不知道这是否会在所有情况下工作......但如果你有更好的解决办法,请张贴它也。谢谢!
那么,如果它驾驶的浏览器的Watir你可以做
matchvalue = regex.new(value)
matchname = regex.new(name)
browser.row(:text => matchvalue, :text => matchname).exists?.should = true
在你的情况下这样做
Then /^I should see "([^"]*)" beside "([^"]*)"$/ do |value, name|
result = false
all("tr").each do |tr|
if tr.has_content?(value) && tr.has_content?(name)
result = true
break
end
end
result.should = true
end
做一个在黄瓜步骤返回混乱了我的cukes。它说不应该有回报或什么 – corroded 2011-05-22 06:22:34
“或什么”?如果你确实需要帮助,那么确切的错误信息会很有帮助。我想可以总是省略返回,它会比较慢,因为它必须处理所有行,否则应该起作用。如果你打算使用黄瓜进行结果报告等,请停止使用断言并开始使用。应该匹配器 – 2011-05-23 16:35:48
对不起,我做了一个工作,因为我的肮脏,所以我没有再使用它。无论如何,我试图再次重现错误,这里是我得到与上述代码:意外的回报(LocalJumpError) – corroded 2011-05-23 16:52:29
,而不是旧的单元测试什么“断言”你应该使用。应该是rspec/cucumber的一部分。看到我的回答下面 – 2011-05-21 00:15:28
我不认为主张vs应该在这一点上,因为这是一个偏好的问题:) – corroded 2011-05-24 10:25:15