Тест Capybara, если страница имеет регулярное выражение
Я новичок в RSpec и Capybara, и я пытаюсь проверить, имеет ли на нем время. 12:00 или 14:24 или 08:12 являются хорошими примерами того, что я пытаюсь проверить.
Я использую следующее регулярное выражение:
/^\d{2}:\d{2}/
Я не уверен, как "рассказать это" в capybara, чтобы проверить, содержит ли страница это регулярное выражение.
Ответы
Ответ 1
Я бы предположил что-то вроде
page.text.should match(/^\d{2}:\d{2}/)
или с новым синтаксисом RSpec
expect(page.text).to match(/^\d{2}:\d{2}/)
Или вы можете проверить не всю страницу, а некоторый элемент, например
find("span.time").text.should match(/^\d{2}:\d{2}/)
Ответ 2
Я не знаю, является ли это новым поведением, но вы можете просто использовать has_content?
:
page.has_content?(/do not have permission/i)
В rspec это будет примерно так:
expect(page).to have_content(/do not have permission/i)
Я нашел это в онлайн-документации для capybara, но он под has_text?
, поскольку has_content?
является просто псевдонимом.