Jaka jest różnica między następującymi wierszami kodu (rspec) i niezależnie od tego, czy są one takie same czy różne, kiedy należy używać jednego z nich zamiast drugiego?Pozwól kontra Stub, co za różnica?
book = double("book")
allow(book).to receive(:title) { "The RSpec Book" }
kontra
book = double("book")
book.stub(:title).and_return("The RSpec Book")
'rspec-mocks' REAME wydaje się wymieniać tylko' allow'. Uważam, że dziwne, ponieważ 'MyClass.stub (bla: 20)' jest bardziej zwięzły niż 'allow (MyClass) .to receive (: blah) .and_return (20)'. – gylaz
@gylaz Przeczytaj [pierwszy artykuł] (http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax) w tej odpowiedzi. Daje dobry przegląd przyczyny, dla której zezwolenie/oczekiwanie jest lepsze. tl; dr: starsza składnia jest skłonna do wywoływania dziwnych, mylących niepowodzeń. Nowa składnia rozwiązuje te problemy, zachowując wysoką czytelność. – Andrew