2011-09-18 33 views
9

Tôi đã nhìn thấy nó được sử dụng nhiều lần, và không bao giờ thực sự dừng lại để đặt câu hỏi đó. Bây giờ nó đã cho tôi tự hỏi nếu có một sự khác biệt giữa stub và sơ khai!Trong RSpec, sự khác biệt giữa cuống! và sơ khai?

Có phải không? Hay là lịch sử? Có stub! có nghĩa là nó stubs nó một lần? và quay trở lại cuộc gọi phương thức thông thường?

Trả lời

13

Trong cả hai phiên bản 2 và v1.3.2, chúng đơn giản là bí danh của nhau. Trong v1.3.2 stub là một bí danh của stub!

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

Trong thời gian ở v2.6 của rspec 2, stub! là một bí danh của stub

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

Tuy nhiên trong v1.1.4, stub là bí danh cho mockstub! là một phương pháp riêng biệt. Từ các tài liệu, có vẻ như là stub! trong phiên bản ban đầu này đã được sử dụng để thêm các phương thức cho các đối tượng hiện có, tạo một "mô hình một phần".

Lời giải thích:
https://github.com/dchelimsky/rspec/blob/1.1.4/lib/spec/mocks.rb#L43

Các định nghĩa:
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

Các vấn đề liên quan