/ / Como stub quaisquer instâncias para uma determinada classe usando Rspec Mocks - ruby, mocking, rspec

Como stub quaisquer instâncias para uma determinada classe usando Rspec Mocks - ruby, mocking, rspec

O código a seguir gera um erro: 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

Como posso incluir o módulo Mocks na classe Class ou Object?

Respostas:

30 para resposta № 1

any_instance foi recentemente adicionado ao rspec, então seu exemplo agora funciona para mim como é com o rspec 2.7.

Aqui está mais documentação any_instance: https://www.relishapp.com/rspec/rspec-mocks/docs/method-stubs/stub-on-any-instance-of-a-class


3 para resposta № 2

Com RSpec Mocks nas versões anteriores a 2.6.0, você não pode fazê-lo. No entanto você pode usar any_instance com Mocha (como visto Aqui) ou em versões posteriores do Rspec.

Na tua spec/spec_helper.rb

Certifique-se de ter esta linha:

config.mock_with :mocha

descomentado.