2011-09-18 11 views
9

Widziałem go wielokrotnie i nigdy nie przestałem go kwestionować. Teraz zastanawiam się, czy istnieje różnica między stubem a stubem!W RSpec, jaka jest różnica między stub! i stub?

Czy jest? Czy to jest historyczne? Czy stub! to znaczy, że to raz to zapełniło? i wraca do normalnego wywołania metody?

Odpowiedz

13

Zarówno w wersji 2, jak i v1.3.2, są po prostu aliasami nawzajem. W v1.3.2 stub jest alias stub!

https://github.com/dchelimsky/rspec/blob/v1.3.2/lib/spec/mocks/methods.rb#L12

ile w v2.6 z RSpec 2 stub! jest alias stub

https://github.com/rspec/rspec-mocks/blob/master/lib/rspec/mocks/methods.rb#L12

Jednakże w v1.1.4, stub to alias dla mock, a stub! to osobna metoda. Z dokumentacji wydaje się, że w tej wczesnej wersji użyto metody stub! do dodawania metod do istniejących obiektów, tworząc "częściową próbę".

Wyjaśnienie:
https://github.com/dchelimsky/rspec/blob/1.1.4/lib/spec/mocks.rb#L43

Definicje:
https://github.com/dchelimsky/rspec/blob/1.1.4/lib/spec/mocks/spec_methods.rb#L27
https://github.com/dchelimsky/rspec/blob/1.1.4/lib/spec/mocks/methods.rb#L12

Powiązane problemy