Tôi thích cách Cucumber
kết nối thông số kỹ thuật của người dùng với thử nghiệm tích hợp. Phần Cucumber
ít nhiều rõ ràng đối với tôi.
Tôi đấu tranh khi nói đến những gì cần được thử nghiệm với rspec (thử nghiệm không tích hợp) và những gì không nên.
Có quyền kiểm tra đơn vị với rspec
điều gì đó đã được thử nghiệm với Cucumber
(ví dụ: kiểm tra đơn vị sẽ thất bại 100% nếu thử nghiệm Cucumber không thành công và kiểm tra đơn vị sẽ thành công 100% nếu thử nghiệm thành công)?Đặt giới hạn giữa rspec và dưa chuột trong Rails
Để cụ thể, tôi có ba ví dụ tôi muốn giải quyết.
Đây là trường hợp từ sách RSpec. Họ có sau
Cucumber scenario
:Given I am not yet playing When I start a new game Then I should see "Welcome to Codebreaker!" And I should see "Enter guess:"
Họ xây dựng hai
rspec-tests
ngay sau:describe "#start" do it "sends a welcome message" do end it "prompts for the first guess" do end end
Một ví dụ khác là kiểm tra định tuyến hoặc chuyển hướng hành động, trong khi có các tình huống sau:
Given I am at the login page When I fill in the right username and password Then I should be at the index page
Đôi khi chúng tôi kiểm tra những người trợ giúp đã được thử nghiệm với
Cucumber
:Given Mike has spent 283 minutes online When I go to the Mike's profile page Then I should see "4:43" for "Time online:"
tôi có lẽ nên kiểm tra helper mà phá vỡ thành "04:43" phút 283, nhưng nó chỉ ra rằng nó đã được thử nghiệm với
Cucumber
.
Đây có thể không phải là ví dụ tốt nhất, nhưng nó minh họa những gì tôi đang nói đến.
Đối với tôi, các thử nghiệm đó là trùng lặp.
Bạn có thể nhận xét về các ví dụ ở trên không?
Có nguyên tắc hoặc nguyên tắc nào về những gì cần được kiểm tra với rspec
, khi có Cucumber tests
chưa?
Big lên đến Sandi Metz, cuốn sách tuyệt vời. Đọc khác thực sự tốt trên đầu trang là cuốn sách RSpec của David Chelimsky, bao gồm RSpec và dưa chuột trong một số tiền hợp lý của chiều sâu – muttonlamb
Cảm ơn bạn @ Kocur4d! –
Theo nguyên tắc chung, bạn nên sử dụng Cucumber ** nếu và chỉ khi ** chủ sở hữu sản phẩm/khách hàng của bạn cần có khả năng đọc các bài kiểm tra :) –