19

我是 RSpec 和 Capybara 的新手,我正在尝试测试页面是否有时间。12:00 或 14:24 或 08:12 是我要测试的很好的例子。

我正在使用以下正则表达式:

/^\d{2}:\d{2}/

我不确定如何在 capybara 中“措辞”来测试页面是否包含此正则表达式。

4

2 回答 2

28

我想像

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}/)
于 2012-09-20T13:06:22.073 回答
14

我不知道这是否是新行为,但您可以使用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?

于 2014-02-24T20:54:49.797 回答