1

所以你可以进行这样的测试:

find(".blah").should have_content("blah blah")

但是有没有办法检查是否有东西在等等?

find(".blah").should have_some_content
4

3 回答 3

2

我不相信有你想要的 Capybara::RSpecMatchers。但是,您可以使用底层的 Capybara::Node::Matchers。

尝试:

find(".blah").has_no_text?.should be_true

如果您真的想使用 Capybara::RSpecMatchers,您可以使用have_content查找任何非空白字符的正则表达式。

find(".blah").should have_content(/[^\s]/)
于 2013-09-19T16:54:31.123 回答
1

看起来你正在使用 Capybara。

而不是有问题的风格,我会这样写

page.should have_css('.bar', text: 'foo')
于 2013-09-19T16:00:26.687 回答
0

我会检查的返回值,find(".blah")看看它在以下两种情况下是什么:

  • 你知道它在那里,并且有东西被退回
  • 您知道它不存在并且返回了其他东西(也许nil?)

然后编写测试只是为了确认,在您的情况下,存在该类的某些元素很容易。只需知道.find找到和未找到某物时方法的返回值之间的差异即可。

于 2013-09-19T15:58:16.063 回答