El siguiente código genera un error: undefined method 'any_instance' for String:Class
Cómo stub cualquier instancia de una clase determinada usando Rspec Mocks
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
¿Cómo puedo incluir el módulo de burla en la clase o clase de objetos?
Pues bien, dado que la cuestión está "usando Rspec burla", no estoy seguro de la respuesta "no utilice Rspec Mocks" es útil. Por otra parte, es mejor que la respuesta técnicamente correcta: no puedes hacerlo. –
muy cierto, respuesta actualizada. –
La prueba anterior es en realidad una prueba de Rspec [enlace] (https://github.com/rspec/rspec-mocks/blob/master/spec/rspec/mocks/any_instance_spec.rb#L124). Y el módulo AnyInstance se incluye a través de (mocks.rb): 'Class.class_eval {include RSpec :: Mocks :: AnyInstance}' Creo que hay una manera de hacerlo de alguna manera. – Andy