and_call_original, используемый с allow_any_instance_of, не работает после обновления rspec до 3.1.0 - PullRequest
0 голосов
/ 16 октября 2018

У меня был код в rspec 2.14.1, такой как

allow_any_instance_of (AnyClass) .to получать (: some_method) .and_call_original

с соответствующим сообщением(AnyClass). Для получения (: some_method).

Вышеописанное работало нормально в rspec 2.14.1.После обновления до rspec 3.1.0 приведенный выше код больше не работает.Не удается получить сообщение о том, что some_method не вызывается ни разу

Однако, если я изменяю заглушку, например, allow_any_instance_of (AnyClass) .to receive (: some_method) .and_return (value)

, это работаетотлично в rspec 3.1.0.

Я просто хотел понять, почему не удается использовать and_call_original с allow_any_instance_of после обновления rspec.

По этой ссылке https://relishapp.com/rspec/rspec-mocks/docs/configuring-responses/calling-the-original-implementation я вижу, что and_call_original - толькоподдерживается на частичных двойных числах.

Означает ли это, что использование allow_any_instance_of не является частичным двойным?

1 Ответ

0 голосов
/ 18 октября 2018

and_call_original на самом деле работает, когда используется с allow_any_instance_of.

ссылается на спецификации для any_instance, что дает нам представление о различных способах насмешки или отмены использования and_call_original здесь https://github.com/rspec/rspec-mocks/blob/master/spec/rspec/mocks/any_instance_spec.rb

Чтобы ответитьмой вопрос выше, то, как я использовал ожидание сообщения, неверно.Это должно быть

allow_any_instance_of (AnyClass). Для получения (: any_method) .and_call_original Ожидайте (AnyClass.new.any_method).ожиданий, вызвавших проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...