67
Das folgende Stück Code zu erhalten wie erwartet funktioniert:Object.any_instance should_receive vs erwarten()
Object.any_instance.should_receive(:subscribe)
Aber wenn die neue rspec Erwartung mit funktioniert es nicht:
expect(Object.any_instance).to receive(:subscribe)
Der Fehler ist:
expected: 1 time with any arguments
received: 0 times with any arguments
Wie kann ich diese Arbeit mit expect() erhalten?
1 für „nicht sehr gut dokumentiert“. Immer noch der Fall. http://www.rubydoc.info/gems/rspec-mocks/RSpec/Mocks/ExampleMethods:expect_any_instance_of – johngraham
Ich habe mit worden 'allow_any_instance_of'. Ist es ein Alias dieser Methode? – rubyprince
@rubyprince Sie unterscheiden sich durch das Stub-Verhalten der Allow-Methoden und erwarten, dass Methoden auf ihr Verhalten getestet werden. Zum Beispiel, 'allow (my_obj) .to zu erhalten (: method_name) .and_return (true)' stubs 'my_obj.method_name()' also, wenn es im Test aufgerufen wird, gibt es einfach 'true' zurück. 'expect (my_obj) .to receive (: Methodenname) .and_recturn (true)' ändert kein Verhalten, sondern legt eine Testerwartung fest, die fehlschlägt, wenn 'my_obj.method_name()' nicht später in der aufgerufen wird Test oder nicht wahr zurück. – Saigo