次のコードはエラーを発生させます:undefined method 'any_instance' for String:Class
require 'rspec'
RSpec.configure do |config|
config.mock_with :rspec
end
describe String do
it 'stubs' do
String.any_instance.stub(:foo).and_return(1)
''.foo.should eq(1)
end
end
MocksモジュールをClassまたはObjectクラスに含めるにはどうすればよいですか?
any_instanceが最近rspecに追加されたので、あなたの例はrspec2.7の場合と同じように機能するようになりました。
これを行う新しい方法はallow_any_instance_of(String).to receive(:foo).and_return(1)
です。
Any_instanceのドキュメントは次のとおりです: https://relishapp.com/rspec/rspec-mocks/docs/working-with-legacy-code/any-instance
2.6.0より前のバージョンのRSpecMocksでは、それを行うことはできません。ただし、any_instance
はMocha( ここ )またはそれ以降のバージョンのRspecで使用できます。
あなたのspec/spec_helper.rb
で
次の行があることを確認してください。
config.mock_with :mocha
コメントなし。