2008-10-03 21 views
13

Vì vậy, tôi muốn bắt đầu sử dụng câu chuyện RSpec, nhưng tôi không chắc nơi viết điều khiển, mô hình và xem thông số kỹ thuật phù hợp.Câu chuyện và thông số RSpec: Khi nào nên sử dụng cái gì?

Ví dụ: bạn có câu chuyện "Đăng nhập" với trường hợp "Người dùng cung cấp mật khẩu sai" , bạn không kết thúc thử nghiệm cùng một công cụ hơn điều khiển/mô hình thông số kỹ thuật (response.should render ..., user.should be_nil, vv)

Vì vậy, câu hỏi của tôi là: cho những người đang sử dụng để làm bdd (hoặc câu chuyện dd) với RoR, bạn vẫn viết mô hình/điều khiển thông số kỹ thuật? Nếu vậy, công việc bạn theo dõi như thế nào ("câu chuyện đầu tiên, sau đó thu hẹp thông số kỹ thuật cụ thể")?

Trả lời

8

Nếu bạn đang bắt đầu với những câu chuyện ngay bây giờ (trái ngược với việc có nhiều câu chuyện cũ), bạn có thể muốn xem Cucumber là sự thay thế dài hạn cho nhân vật câu chuyện RSpec.

Cách dễ nhất để tách giữa các thông số và câu chuyện là sử dụng các câu chuyện để kiểm tra toàn bộ yêu cầu nghiệp vụ và thông số kỹ thuật cho các thành phần cấp thấp (các khung nhìn, người trợ giúp, bộ điều khiển và mô hình). 'Full stack' có thể là một phạm vi từ bộ điều khiển/mô hình/cơ sở dữ liệu thông qua mô phỏng ứng dụng khách với Webrat để kiểm tra trong trình duyệt với Watir hoặc Selenium.

Cách thức hoạt động của BDD là bắt đầu với những câu chuyện dựa trên yêu cầu của khách hàng và sau đó thêm thông số kỹ thuật cho các thành phần bạn cần khi triển khai câu chuyện. Lý tưởng nhất là bạn sẽ bao gồm đầy đủ các thành phần riêng lẻ với thông số kỹ thuật và có câu chuyện cho quy trình công việc quan trọng nhất của người dùng để bạn có thể kiểm tra ở mức cao nhất mà ứng dụng của bạn đang cung cấp chức năng bạn đã được yêu cầu.

3

Tôi thấy các câu chuyện hữu ích khi họ kiểm tra hành vi người dùng thực sự thực hiện hoặc quan sát - thay vì kiểm tra mẫu "đăng nhập không thành công" được hiển thị, hãy kiểm tra xem câu trả lời có "không đăng nhập" hay không. IMHO sẽ tốt hơn nếu các câu chuyện không bao giờ đề cập đến các mô hình, khung nhìn hoặc bộ điều khiển trực tiếp, mặc dù đôi khi rất khó để có được các bước làm việc mà không cần tạo các cá thể mô hình theo cách thủ công.

Như tôi thấy, chế độ xem, bộ điều khiển và thông số kỹ thuật của mô hình chỉ là một phần của hình ảnh. Họ nói ngôn ngữ của việc thực hiện ("hành động điều khiển X phải làm Y để mô hình hóa Z") và kiểm tra xem từng phần riêng lẻ của ứng dụng của bạn có thực hiện đúng hay không. Các câu chuyện hoàn thành bức tranh bằng cách nói ngôn ngữ của người dùng ("khi tôi đăng bình luận tôi sẽ thấy bình luận tôi đăng") và kiểm tra xem các bộ phận có phù hợp với nhau theo cách đáp ứng các tiêu chí chấp nhận của khách hàng hay không.

Tôi tìm thấy một công việc hữu ích là:

  • viết một kịch bản câu chuyện mô tả các chức năng tôi cần phải thêm vào.
  • càng sớm càng tốt, viết các bước cho câu chuyện đó, để bạn có thể chạy nó (ngay cả khi tất cả các bước không thành công).
  • viết thông số cho nội dung cần thiết cho câu chuyện đó (mô hình có thể là một nơi tốt để bắt đầu).
  • viết mã để làm cho thông số kỹ thuật đó.
  • ghi thêm thông số và mã cho đến khi câu chuyện trôi qua.

Bằng cách đó, câu chuyện có thể hướng dẫn bạn về những thông số kỹ thuật cần kiểm tra.

Chỉnh sửa: this là bài viết hay về mối quan hệ giữa các câu chuyện và thông số kỹ thuật.

1

Pat Maddox (RSpec đội ngũ nòng cốt) cho rằng theo một số giả định, bạn có thể bỏ qua thông số kỹ thuật điều khiển khi sử dụng những câu chuyện dưa chuột/tính năng

đọc về quan điểm của mình here

0

gì về bỏ qua cái nhìn đặc tả nếu bạn đã có Cucumber + Capybara trên đó. Tôi có xu hướng tìm thông số xem không cần thiết.

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