Stellen haben wir folgende Stück Code:Wie vermeidet man die Verwendung allow_any_instance_of?
class A
def create_server
options = {
name: NameBuilder.new.build_name
}
do_some_operations(options)
end
end
solche Methoden zu testen, habe ich verwendet allow_any_instance_of
verwenden:
it 'does operations' do
allow_any_instance_of(NameBuilder).to receive(:build_name)
# test body
end
Aber docs raten uns nicht because of several reasons zu verwenden. Wie dann vermeiden Sie allow_any_instance_of
? Ich habe kam nur eine Lösung:
class A
def create_server
options = {
name: builder.build_name
}
do_some_operations
end
private
def builder
NameBuilder.new
end
end
Aber mit einem solchen Ansatz Code wird schnell voll von fast nutzlos Methoden (vor allem, wenn Sie Zusammensetzung von verschiedenen Objekten in beschrieben Klasse aktiv verwendet wird).
Und dann sollten wir Doppel verwenden, um Builder-Objekt zu fälschen, oder? – sekrett