检查一个字符串标志

时间:2018-01-18 08:50:30

标签: ruby

我有一个标记moto,应该是字符串'true''false'

我如何使用rspec检查moto是否是这些字符串中的任何一个?

我试过了:

context '#modify_moto_for' do
  it "modifies moto flag" do
    xml = RequestModifier.new.modify_moto_for(load_trx_content('sale'), 'false')
    xmlref = Nokogiri::XML(xml)
    moto = xmlref.search("moto").first.text
    puts moto
    expect(moto).to be_in([false])
  end
end

2 个答案:

答案 0 :(得分:2)

如果它返回类似' true'的字符串和' false',您可以使用

expect(moto).to eq('true') #=> or eq('false')

我认为它在这里不起作用,因为你返回一个字符串而false是一个布尔值。

如果返回布尔值,则可以使用

expect(moto).to be_true #=> be_false

检查(be_falsey和be_truthy)在rspec文档中提供更强大的检查,希望它有所帮助。

答案 1 :(得分:0)

最低要求是更改:

expect(moto).to be_in([false])

类似于:

expect(moto).to be_in(["false"])