Rails5 の rspec で allow_any_instance_of を使う
Ruby Ruby on Rails
Published: 2019-06-02

やったこと

Rails5 の rspec で allow_any_instance_of を使ってみます。

確認環境

$ ruby --version
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin17]

$ rails --version
Rails 5.2.3

$ gem list | grep rspec-rails
rspec-rails (3.8.2)

調査

allow_any_instance_of は、不具合があるので

あまり使わない方が良いようです。

spec/models/task3_spec.rb

require 'rails_helper'

RSpec.describe Task, type: :model do

  it 'test1 allow_any_instance_of' do
    allow_any_instance_of(Object).to receive(:display).and_return(:display_value)

    o = Object.new
    expect(o.display).to eq(:display_value)
  end
end

出力結果

$ bundle exec rspec spec/models/task3_spec.rb
.

Finished in 0.0136 seconds (files took 0.86209 seconds to load)
1 example, 0 failures

参考