【发布时间】:2013-09-19 15:54:59
【问题描述】:
所以你可以进行这样的测试:
find(".blah").should have_content("blah blah")
但是有没有办法检查是否有东西在 blah 中?
find(".blah").should have_some_content
【问题讨论】:
标签: ruby-on-rails-3 rspec capybara shoulda
所以你可以进行这样的测试:
find(".blah").should have_content("blah blah")
但是有没有办法检查是否有东西在 blah 中?
find(".blah").should have_some_content
【问题讨论】:
标签: ruby-on-rails-3 rspec capybara shoulda
我不相信有你想要的 Capybara::RSpecMatchers。但是,您可以使用底层的 Capybara::Node::Matchers。
试试:
find(".blah").has_no_text?.should be_true
如果你真的想使用 Capybara::RSpecMatchers,你可以使用 have_content 和一个寻找任何非空白字符的正则表达式。
find(".blah").should have_content(/[^\s]/)
【讨论】:
看起来你正在使用 Capybara。
代替有问题的样式,我会这样写
page.should have_css('.bar', text: 'foo')
【讨论】:
我会检查find(".blah")的返回值,看看它在以下两种情况下是什么:
nil?)然后编写测试只是为了确认,在您的情况下,存在该类的某些元素很容易。只需要知道有什么和没有找到什么时.find方法的返回值之间的区别。
【讨论】: