Dưa chuột và RSpec đều được sử dụng cho BDD nhưng có sử dụng khác nhau.
Hãy suy nghĩ về dưa chuột như mô tả những gì xảy ra từ quan điểm của người dùng, thông qua tương tác với trình duyệt web. Vì vậy, bạn có thể có các bước như:
Given I'm not logged in
When I login
Then I should be on the user dashboard page
Khá rộng, nhưng có rất nhiều đang xảy ra dưới mui xe ở đó. Dưa chuột là tốt để đảm bảo tất cả các loại tính năng và chức năng cao cấp này được đề cập (ví dụ: khi người dùng đăng nhập, chúng được đưa đến đúng trang). Nhưng nó không phải là một công cụ tốt để thử nghiệm mã cấp thấp hơn. Đó là nơi RSpec đến.
Lấy ví dụ đăng nhập ở trên. Người dùng của bạn có thể đăng nhập bằng địa chỉ email hoặc tên người dùng. Bạn có thể muốn đảm bảo địa chỉ email hợp lệ hoặc tên người dùng có độ dài nhất định ... hoặc điều họ đang sử dụng để đăng nhập là duy nhất. Bạn sẽ làm điều này trong mô hình Người dùng của mình với xác thực.
Đây là một ví dụ nhỏ, nhưng đây là loại điều bạn muốn kiểm tra bằng RSpec (trong tệp spec/models/user_spec.rb). Đây là không phải thứ bạn muốn thử nghiệm bằng cách sử dụng Dưa chuột.
dòng Vậy chốt là:
dưa chuột cho các bài kiểm tra cấp trên mô tả chức năng rộng như nhìn từ góc độ của người dùng
RSpec cho các bài kiểm tra cấp dưới mô tả chi tiết về cách thức các lớp học, phương pháp, mô hình, điều khiển của bạn , vv thực sự nên hoạt động.
bài này thực sự không một công việc thực sự tốt trong việc giải thích khi chuyển từ công cụ khác:
http://www.sarahmei.com/blog/2010/05/29/outside-in-bdd/
tôi cũng khuyên bạn nên "The RSpec Book" và "Rails Test Prescriptions" cho các nguồn lực tốt trên cả hai công cụ và thử nghiệm nói chung.
P.S. - Không làm lẫn lộn mọi thứ, nhưng bạn thực sự có thể sử dụng RSpec cho các công cụ cao cấp. Nhưng một số quyết định đó là vấn đề công cụ nào bạn thích hoặc có thể có hay không bạn đang làm việc với một khách hàng phi kỹ thuật, người sẽ hưởng lợi nhiều hơn từ cú pháp thân thiện với người dùng của Cucumber để mô tả các kịch bản.
http://stackoverflow.com/questions/393622/rspec-vs-cucumber-rspec-stories –