#ruby #browser #text #watir #verify
#ruby #браузер #текст #watir #проверить
Вопрос:
Я пишу тест, в котором удаляю запись, и мне нужно убедиться, что запись больше не присутствует после того, как я ее удалил. Я знаю, как проверить, что текст записи присутствует на странице, с помощью «browser.text.include?», но есть ли способ, которым я могу проверить, что текст отсутствует вместо этого? Мне нужно, чтобы тест завершился неудачей, если текст все еще присутствует после того, как он предположительно был удален. Я искал, но единственные обращения, которые я получаю при поиске, говорят мне, как проверить, что текст присутствует, что противоположно тому, что мне нужно.
Большое вам спасибо.
Комментарии:
1. Не могли бы вы просто проверить отрицание? Например. Assert. Неверно (т.Е. Содержит текст(«Foo», «Запись не была удалена».)
Ответ №1:
browser.text.include? возвращает логическое значение (на самом деле тип truetype или falsetype, но сейчас не время для этого обсуждения), поэтому его отрицание приведет к обратному результату поиска.
do_a_faily_thing if not browser.text.include? "badgers are eating my face"
Не стесняйтесь настраивать под свои нужды. PS. По сути, это ответ ry, только с барсуками, поедающими лица.
Добавлено для исторического интереса по предложению Чака:
do_a_faily_thing unless browser.text.include? "face-eating-badger-eating-badgers are eating my face-eating badgers"
Добавлено, чтобы показать пример «else»:
if browser.text.include? "badgers are eating my face"
do_a_thing
else
phew_no_badgers
end
Комментарии:
1. Ага, спасибо вам обоим! Я использовал части каждого — я настроил его на, если browser.text.include? «барсуки едят мое лицо» = true затем выполните сбой, иначе продолжите работу со сценарием. Это сработало отлично!
2. Обычно мне не нравится ‘если только’, но в данном случае я бы сказал, что это читается лучше, чем ‘если нет’. @Kim, то, что @kinofrost предлагает здесь, в основном является способом ruby делать именно то, что вы говорите.. он просто сначала помещает операцию, а затем условие, при котором эту операцию следует выполнить.
3. @Kim, рад услышать из вашего комментария, что мы смогли вам помочь. Однако еще лучше, как с точки зрения признания заслуг тех, кто предоставил нужные вам ответы, так и с точки зрения определения «правильных» ответов для других читателей, «принять» ответ (ы), который сработал для вас. (ставить на них галочки тоже неплохо, но большая зеленая галочка, когда ответ принят, — это то, что отдает должное тем, кто ответил, и определяет рабочие ответы для других)
Ответ №2:
Как насчет:
!browser.text.include?("my string")
Комментарии:
1. Я попробовал это, и он продолжает говорить мне, что не получает того, что ожидает, когда скрипт переходит к кавычкам. Поставил мне галочку, потому что это должно было сработать.
Ответ №3:
или в зависимости от того, какую платформу тестирования вы используете
# RSpec and/or Cucumber
browser.text.include?("my string").should != true
# TestUnit
assert(browser.text.include?("my string") != true)
Комментарии:
1. для этой цели в Rspec даже есть метод «should_not»
Ответ №4:
Если запись обернута HTML-элементом, используя exist? метод — это еще один способ проверить существование.
удаленная запись (пример)
<p class='foo'>bar</p>
проверить скрипт
p(:class,'foo').exist?