如何检查是否只有一条Flash消息?

时间:2014-04-08 03:11:18

标签: ruby-on-rails ruby rspec

it "flash notice should be the one and only set" do

  expect(flash[:notice]).to_not be_nil # one and only NOT nil

  expect(flash[:error]).to be_nil
  expect(flash[:alert]).to be_nil
  expect(flash[:foo]).to be_nil
  expect(flash[:bar]).to be_nil
end

有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

调用flash.keys会返回闪存中可用的所有密钥,然后您可以检查它是否只有:notice。您也可以进行计数检查

expect(flash.keys).to eq([:notice])
expect(flash[:notice]).to_not be_nil

expect(flash.keys.count).to eq(1)
expect(flash[:notice]).to_not be_nil