Как отменить заглушку в rspec 3 без включения старого синтаксиса?

Я обновляюсь с rspec 2 до rspec 3 и хотел бы использовать новый синтаксис и не включать старый синтаксис. Но у меня есть несколько заглушек, которые я настроил в блоке before(:each) верхнего уровня и выборочно unstub там, где мне нужна исходная реализация.

Есть ли эквивалентный способ удалить заглушку, если я определил ее с новым синтаксисом allow?


person Kevin Bullaughey    schedule 23.06.2014    source источник


Ответы (1)


Вы можете переопределить их с помощью

expect(Person).to receive(:find).and_call_original

который дополнительно проверит, что исходный метод :find был вызван для человека

person dre-hh    schedule 23.06.2014
comment
Ах, я не знал, что могу переопределить его. Теперь это кажется очевидным! Я также вижу, что могу переопределить с помощью allow. Спасибо! - person Kevin Bullaughey; 23.06.2014
comment
Вам нужно указать экземпляр объекта, который вы хотите удалить. т.е. если мой экземпляр Person живет в company.boss, то вам нужно вызвать expect(company.boss).to receive(:find).and_call_original - person lu1s; 16.11.2017