2014-06-23 19 views
21

Uaktualniam z rspec 2 do rspec 3 i chciałbym użyć nowej składni i nie włączać starej składni. Ale mam kilka stubów, które ustawiłem w moim najwyższym poziomie before(:each) bloku, który wybiórczo unstub, gdzie chcę oryginalnej realizacji.Jak mogę anulować instalację w rspec 3 bez włączania starej składni?

Czy istnieje jakiś równoważny sposób usunięcia kodu pośredniczącego po zdefiniowaniu go przy użyciu nowej składni allow?

Odpowiedz

27

Można redifine im

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

które dodatkowo sprawdzić, że oryginalny: znaleźć sposób padł na osobę

+1

Ach, ja nie wiem, mogę go przedefiniować. Wydaje się oczywiste teraz! Widzę również, że mogę ponownie zdefiniować za pomocą 'allow' również. Dzięki! –

+0

Musisz określić instancję obiektu, który chcesz usunąć. Jeśli moja instancja 'Person' żyje w' company.boss', musisz wywołać 'expect (company.boss) .to otrzymać (: find) .and_call_original'' – lu1s