Tôi có thông số kỹ thuật xem đã qua nhưng bị hỏng ngay khi phân trang (qua đá quý Kaminari) đã được thêm vào chế độ xem. Tôi vẫn đang cố gắng để có được đầu của tôi xung quanh cú pháp của RSpec ... do đó, tìm kiếm sự giúp đỡ trong việc này để vượt qua khi trang hoạt động tốt trong trình duyệt. Tôi biết rằng nhiều người cau mày về thông số kỹ thuật xem vì dễ vỡ (có thể vì những lý do như thế này) nhưng tôi vẫn muốn giữ số này quaKiểm tra RSpec bị hỏng bởi phân trang (Kaminari)
Tôi đang gán một số bài đăng gốc cho mảng @posts. Nhưng các mảng không trả lời current_page
. Vậy làm thế nào tôi nên xử lý điều này trong RSpec?
Failures:
1) posts/index.html.haml renders a list of posts
Failure/Error: render
ActionView::Template::Error:
undefined method `current_page' for #<Array:0x000001028ab4e0>
# ./app/views/posts/index.html.haml:31:in `_app_views_posts_index_html_haml__291454070937541541_2193463480'
# ./spec/views/posts/index.html.haml_spec.rb:39:in `block (2 levels) in <top (required)>'
spec/views/posts/index.html.haml_spec.rb
:
require 'spec_helper'
describe "posts/index.html.haml" do
before(:each) do
...
assign(:posts, [
Factory.stub(:post),
Factory.stub(:post)
])
view.should_receive(:date_as_string).twice.and_return("June 17, 2011")
...
end
it "renders a list of posts" do
render
rendered.should have_content("June 17, 2011")
...
end
end
Tôi biết bạn đã chấp nhận một câu trả lời khác, nhưng tôi lo ngại rằng b y làm stubbing bạn đã làm rằng bạn chỉ stubbed ra một lỗi trong mã của bạn. Lỗi ở trên ngụ ý rằng bạn đang gọi @ posts.current_page trong bộ điều khiển của bạn. Tôi có thể thấy @ posts.first.current_page hoặc controller.current_page là hợp lệ, nhưng @ posts.current_page có thể không phải là. –
điểm tốt! vì vậy, tôi nên, có lẽ là stubbing ra khỏi bộ điều khiển? Tôi không hoàn toàn chắc chắn những gì Kaminari dự kiến sẽ gọi là 'current_page' trên?!? Tôi chỉ biết spec * là * thất bại vì mảng bài viết không trả lời nó ... nhưng, bạn nói đúng, điều đó có vẻ lạ? * Tôi sẽ để nó mở ra một chút để xem liệu có một câu trả lời hay hơn không. * – Meltemi
Bạn cũng có thể đăng mã điều khiển liên quan không? –