代码之家  ›  专栏  ›  技术社区  ›  Tom Prats

使用RSpec进行测试以检查是否有任何内容

  •  1
  • Tom Prats  · 技术社区  · 11 年前

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

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

    但是有没有办法检查一下里面是否有什么东西?

    find(".blah").should have_some_content
    
    3 回复  |  直到 11 年前
        1
  •  2
  •   Justin Ko    11 年前

    我不相信有水豚::RSpecMatchers可以满足你的需求。但是,您可以使用底层的Capybara::Node::Matchers。

    尝试:

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

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

    find(".blah").should have_content(/[^\s]/)
    
        2
  •  1
  •   Billy Chan    11 年前

    看起来你在用水豚。

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

    page.should have_css('.bar', text: 'foo')
    
        3
  •  0
  •   jefflunt    11 年前

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

    • 你知道它在那里,有东西被归还了
    • 你知道它不在那里,还有其他东西(也许 nil ?) 已返回

    然后编写测试来确认,在您的情况下,该类的一些元素存在是很容易的。这只是一个知道 .find 方法,当有和没有发现什么东西时。