Ответ 1
any_instance недавно был добавлен в rspec, поэтому ваш пример теперь работает для меня, как и с rspec 2.7.
Вот еще документация any_instance: https://www.relishapp.com/rspec/rspec-mocks/docs/method-stubs/stub-on-any-instance-of-a-class
Следующий код вызывает ошибку: 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 в класс или объект класса?
any_instance недавно был добавлен в rspec, поэтому ваш пример теперь работает для меня, как и с rspec 2.7.
Вот еще документация any_instance: https://www.relishapp.com/rspec/rspec-mocks/docs/method-stubs/stub-on-any-instance-of-a-class
С RSpec Mocks в версиях, предшествующих 2.6.0, вы не сможете этого сделать. Однако вы можете использовать any_instance
с Mocha (как показано здесь) или в более поздних версиях Rspec.
В spec/spec_helper.rb
Убедитесь, что у вас есть эта строка:
config.mock_with :mocha
раскомментирована.