Sự khác nhau về khái niệm giữa các số feature specs và request specs của Rspec là gì?RSpec: Sự khác biệt giữa tính năng và thông số yêu cầu là gì?
Từ các tài liệu tính năng spec:
Tính năng kỹ thuật là những thử nghiệm cấp cao có nghĩa là để thực hiện chức năng lát thông qua một ứng dụng. Họ chỉ nên chạy ứng dụng qua giao diện bên ngoài , thường là các trang web.
Và đối với yêu cầu thông số kỹ thuật:
Yêu cầu thông số kỹ thuật cung cấp một wrapper mỏng xung quanh thử nghiệm hội nhập Rails', và được thiết kế để lái xe hành vi thông qua toàn bộ ngăn xếp, bao gồm định tuyến (cung cấp bởi Rails) và mà không cần cựa quậy (tùy thuộc vào bạn). Với yêu cầu thông số kỹ thuật, bạn có thể:
- định một yêu cầu duy nhất
- định nhiều yêu cầu trên nhiều bộ điều khiển
- định nhiều yêu cầu trên nhiều phiên
Tôi biết rằng thông số kỹ thuật tính năng sử dụng Capybara và yêu cầu thông số kỹ thuật không. Nhưng điều đó hầu như không xứng đáng với các khái niệm khác nhau.
Vì vậy, bạn có khuyên bạn nên sử dụng cả thông số tính năng và yêu cầu, hoặc là một hay thông số khác đủ? (Là người mới đối với TDD ...) – robertwbradford
Tôi sử dụng cả hai, @robertwbradford. Tôi sử dụng đặc điểm kỹ thuật để thúc đẩy bên ngoài của tôi trong các bài kiểm tra - kiểm tra trải nghiệm người dùng và sau đó xây dựng chức năng bằng cách sử dụng các bài kiểm tra đơn vị. Tôi sử dụng thông số yêu cầu để kiểm tra phản hồi - ví dụ: trong một session_spec tôi có thể có một mô tả '" GET/login "' block với các kỳ vọng trong các khối 'nó' như' expect (response.status) .to eq (200) 'và' expect (response) .to render_template (: mới) ', hoặc trong một' mô tả "POST/phiên" ', một' bối cảnh "với thông tin xác thực hợp lệ" 'khối, với' mong đợi (phản ứng) .to redirect_to (người dùng) 'và' follow_redirect !; mong đợi (response.body) .để bao gồm ("Đã đăng nhập") ' –
Và bạn có sử dụng thông số kỹ thuật điều khiển không? Có vẻ như có một chút trùng lặp giữa những gì bạn kiểm tra trong thông số kỹ thuật yêu cầu và những gì thường được kiểm tra trong thông số kỹ thuật điều khiển. – Ernesto