Следующий фрагмент кода работает, как ожидалось:Object.any_instance should_receive против ожидать(), чтобы получить
Object.any_instance.should_receive(:subscribe)
Но при использовании нового RSpec ожидания он не работает:
expect(Object.any_instance).to receive(:subscribe)
Ошибка is:
expected: 1 time with any arguments
received: 0 times with any arguments
Как я могу выполнить эту работу с ожиданием() для получения?
+1 для «не очень хорошо документировано». Все-таки дело. http://www.rubydoc.info/gems/rspec-mocks/RSpec/Mocks/ExampleMethods:expect_any_instance_of – johngraham
Я использую 'allow_any_instance_of'. Это псевдоним этого метода? – rubyprince
@rubyprince Они разные, с помощью методов allow stubbing и ожидают, что методы тестирования поведения. Например, 'allow (my_obj) .to receive (: method_name) .and_return (true)' stubs 'my_obj.method_name()' поэтому, если он вызывается в тесте, он просто возвращает 'true'. 'expect (my_obj) .to receive (: method_name) .and_return (true)' не изменяет никакого поведения, но устанавливает ожидаемое испытание, если 'my_obj.method_name()' не вызывается позже в тест или не возвращает true. – Saigo