Проверка значений в строке таблицы в огурце - PullRequest
0 голосов
/ 19 мая 2011

Я пытаюсь проверить, является ли значение в таблице данных правильным, поэтому я выбираю все строки и проверяю, имеет ли это значение 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 (в противном случае он продолжится до assert false в конце)Я об этом?

Ответы [ 2 ]

1 голос
/ 19 мая 2011

ну, это похоже на грязный хак, но я просто использовал переменную для проверки:

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

Я не уверен, будет ли это работать во всех случаях ... но, если у вас есть лучшие решения, пожалуйста, опубликуйте их тоже. спасибо!

0 голосов
/ 21 мая 2011

Ну, если бы он вел браузер с 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...