Wie würde ich in einem RSpec-Test in dem folgenden Code überprüfen, dass der Konstruktor der Klasse B ruft den Konstruktor der Klasse A mit das richtige Argument?RSpec Stubbing und Überprüfung von Argumenten, wenn ein Konstruktor eines Objekts instanziiert eine andere
class A
def initialize(*args)
end
end
class B < A
def initialize
super(1)
end
end
Der Test I Arbeiten so lange, wie ich (die „.mit“ auslassen)
describe B do
describe '#new' do
it {
allow(A).to receive(:new).with(any_args)
B.new
expect(A).to have_received(:new).with(1)
}
end
end
Hinzufügen der Prüfung für die Argumente gibt mir die folgende Fehlermeldung nicht die Argumente prüfen:
B
#new
should have received new(1) 1 time (FAILED - 1)
Failures:
1) B#new should have received new(1) 1 time
Failure/Error: expect(A).to have_received(:new).with(1)
#<A (class)> received :new with unexpected arguments
expected: (1)
got: (no args)
Dies scheint den Konstruktor für die Klasse A, um anzuzeigen, ohne Argumente aufgerufen wird?