Rails4 rspec3に変更したら今まで通っていたテストが失敗した。
rspecのバージョンを3.0.1に上げた後、テストを実行したら、今まで通っていたテストのほとんどが失敗した。
原因は2つあった。
1つ目は、be_trueとbe_falseが、be_truthyとbe_falseyに変更されていたからだった。
be_trueをbe_truthyに、be_falseをbe_falseyに置換した。
2つ目は、spec_helperに下記のコードを書いていたが、typeが使えなくなっていたからだった。
RSpec.configure do |config| config.include Devise::TestHelpers, type: :controller end
typeを使うためには、spec\spec_helper.rbに下記を追加する。
RSpec.configure do |config| config.infer_spec_type_from_file_location! # この行を追加 config.include Devise::TestHelpers, type: :controller end
参考:
Consider renaming `be_true` and `be_false` to `be_truthy` and `be_falsey` · Issue #283 · rspec/rspec-expectations · GitHub
RSpec 3の重要な変更 - 有頂天Ruby