2011-11-29 40 views
25

Tôi muốn bắt đầu lặn vào BDD. Tôi chưa bao giờ sử dụng TDD trước và am không chắc chắn nếu tôi nên bắt đầu bằng cách học RSpec và sau đó nhảy đến Cucumber hoặc chỉ cần đi thẳng đến sử dụng dưa chuột.dưa chuột vs RSpec

Tôi đã đọc trên internet về cả hai và dường như với tôi rằng Dưa chuột có thể là 'thay thế' cho RSpec. Tôi có đúng hay phải là một thứ được sử dụng cho một số thứ nhất định và cái kia cho người khác?

+0

http://stackoverflow.com/questions/393622/rspec-vs-cucumber-rspec-stories –

Trả lời

7

Có, dưa chuột và rspec đều được sử dụng cho BDD.

Cá nhân tôi thích dưa chuột, nhưng một số người tìm thấy nó offputting, và thích kiểm tra của họ là ít tiếng Anh, nhiều mã. Cả hai đều là những công cụ tuyệt vời, mặc dù.

70

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.

+0

+1 cho liên kết bài viết, đó là điều cần phải đọc. –

3

Kenton đã làm rất tốt với câu trả lời này.Sau đây là cách tác giả của RSpec và Cucumber thấy:

Chúng tôi sử dụng dưa chuột để mô tả hành vi của ứng dụng và sử dụng RSpec để mô tả hành vi của các đối tượng.

Mặc dù chúng tôi sử dụng dưa chuột để tập trung vào hành vi cao cấp và sử dụng RSpec tập trung vào hành vi cụ thể hơn, có thể được dùng cho cả hai mục đích .

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