web-dev-qa-db-ja.com

trueに応答するとtrueが期待されますか?

rspec-Railsを3.0.1にアップグレードしたところ、すべてのテストでこのエラーが表示されました

 Failure/Error: Sidekiq::Status::complete?(json.jid).should be_true
  expected true to respond to `true?`

解決策も見つからないものも見つかりません。

46
Luiz E.

Rspec 3.0以降、be_truebe_truthyに、be_falsebe_falseyに名前が変更されました

動作は変更されていません。そう

(nil).should be_falsey
(false).should be_falsey

合格し、

(anything other than nil or false).should be_truthy

も通過します

changelog 3.0.0.beta1/2013-11-07 から

Be_trueおよびbe_falseの名前をbe_truthyおよびbe_falseyに変更します。 (サム・フィッペン)

92
Santhosh

既存の仕様の多くを書き換えないようにするには、spec_helperにこれを追加できます(私の調和の感覚を損ないますが、時間を節約できます)。

def true.true?
  true
end

def true.false?
  false
end

def false.true?
  false
end

def false.false?
  true
end
1
sergeych