Làm cách nào để kiểm tra bố cục cụ thể được sử dụng trong RSpec? Tôi đã thử template.layout, response.layout và response.should render_template ("layout") không có may mắn.Bố cục thử nghiệm Rspec
Trả lời
Trong rspec 2, trong thông số bộ điều khiển, bạn sử dụng render_template như bạn đoán, nhưng bạn cần bao gồm đường dẫn tương ứng với thư mục lượt xem. Vì vậy, nếu bố trí của bạn là app/views/layouts/mylayout.html.erb, spec của bạn trông như thế này:
response.should render_template "layouts/mylayout"
# rspec-rails-1.3.x for rails-2
describe HomeController do
describe "the home page" do
it "should use the :home_page layout" do
get :index
response.layout.should == "layouts/home_page"
end
end
end
# rspec-2 for rails-3
describe "GET index" do
it "renders the page within the 'application' layout" do
get :index
response.should render_template 'layouts/application' # layout
response.should render_template 'index' # view
end
end
https://gist.github.com/11080d61648aaee51840 Tôi đang ở trên rspec 2, đường ray 3. Tôi bị phản đối với response.layout và các lỗi mẫu phát.được đề xuất. –
Tôi đã cập nhật câu trả lời của mình dựa trên phản hồi của bạn. –
Ngoài ra, bạn có thể kiểm tra cả hai, cách bố trí và rendering hành động, trong một lớp lót trong rspec-2:
response.should render_template(%w(layouts/application name_of_controller/edit))
được cập nhật cú pháp cho RSpec 3:
expect(response).to render_template(:index) # view
expect(response).to render_template(layout: :application) # layout
Hoặc nếu bạn thích @Flov's one-liner, bạn có thể viết:
expect(response).to render_template(:index, layout: :application)
Lưu ý rằng render_template
đại biểu assert_template
. Bạn có thể tìm thấy các tài liệu đó tại đây: ActionController assert_template.
Chỉ cần một lưu ý, điều này không còn hoạt động và cũng là tài liệu được man rợ lỗi thời. – Sebastialonso
- 1. Thử nghiệm ActiveAdmin với rspec
- 2. Thử nghiệm Middleware với Rspec
- 3. Thử nghiệm "Tạo bài đăng" với Rspec
- 4. Sử dụng RSpec để kiểm tra bố cục
- 5. Khi thử nghiệm với rspec, nơi để đặt phổ biến "phương pháp thử nghiệm tiện ích"?
- 6. Thử nghiệm HTTPS cục bộ với Coldfusion
- 7. Testing vẽ của một bố cục được với RSpec & Rails
- 8. Rails 3.1, RSpec: xác nhận mẫu thử nghiệm
- 9. Lỗi mong đợi trong các thử nghiệm rspec
- 10. đối tượng phiên trong thử nghiệm tích hợp rspec
- 11. Xác thực bằng Devise trong các thử nghiệm Rspec
- 12. RSpec Tùy chọn để thử nghiệm ứng dụng ray
- 13. test.host trong rspec thử nghiệm Rails chuyển hướng
- 14. Rails 3.1 plugin gem, ứng dụng thử nghiệm giả, rspec
- 15. Viết thử nghiệm với RSpec cho Redis với Rails
- 16. Thử nghiệm Tải lên tệp Paperclip với RSpec
- 17. rspec-ray không chạy thử nghiệm dưới đặc tả/lib
- 18. Biến các biến mẫu trong các thử nghiệm rspec
- 19. Chạy các nhiệm vụ Rake trong các thử nghiệm Rspec
- 20. Làm thế nào để thử đối tượng yêu cầu cho các thử nghiệm trợ giúp rspec?
- 21. thêm bố cục trong bố cục khác
- 22. Bố cục lưới Vs. Bố cục bảng
- 23. Cách đọc trong tệp JSON cục bộ để thử nghiệm
- 24. Bố cục CSS Tricky
- 25. Phương pháp tiêu diệt thử nghiệm RSpec (Hướng dẫn Rails 3.2 Ch. 9, Ví dụ 10)
- 26. Thử nghiệm dương tính và thử nghiệm âm tính trong thử nghiệm đơn vị
- 27. Bố cục Android S3 và bố cục Galaxy Nexus
- 28. Bố cục bố cục sai trong cửa sổ bật lên
- 29. Hạn chế bố cục trên lớp bố cục không chuẩn
- 30. bố cục đất và bố cục xoay màn hình android
Và làm cách nào để bạn kiểm tra không có bố cục nào được sử dụng. Giả sử rằng bộ điều khiển thực hiện 'render: layout => false' chẳng hạn. Làm thế nào để bạn kiểm tra nó? –