Görüntüye eklenmiş bir bakış açım var (şimdi Kaminari gem ile) görünümüne eklendi. Hala kafamı RSpec'in sözdizimi etrafında tutmaya çalışıyorum ... bu yüzden sayfanın tarayıcıda iyi çalışmasından dolayı bunu başarmak için yardım arıyorum. Birçok kişi (muhtemelen böyle nedenlerle) kırılgan olduğu için görünüm özellikleri üzerinde kaşlarını farkındayım ama hala bazı @posts diziye mesajları stubbed atama amRSpec testi sayfalara göre ayrışmış (Kaminari)
geçen bu bir tutmak istiyorum. Ancak, diziler current_page
'a yanıt vermez. Peki bunu RSpec'de nasıl ele almalıyım?
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
Seni şimdiden biliyorum başka bir cevabı kabul etti, ama b Yaptığın şey, kodunda bir hatayı kaçırdın. Yukarıdaki hata, denetleyicinizde @ posts.current_page öğesini çağırdığınızı ima etmektedir. @ Posts.first.current_page veya controller.current_page öğesinin geçerli olduğunu görebiliyorum, ancak @ posts.current_page muhtemelen değil. –
iyi nokta! Yani, belki de kontrolörden dışarı çıkmalı mıyım? Kaminari'nin "current_page" olarak adlandırmayı umduğu şeyin tam olarak emin değilim? Sadece mesajların dizisi yanıt vermediği için * * başarısız olduğunu * biliyorum, ama haklısın, bu garip görünüyor? * Daha iyi bir cevabın kendini gösterip göstermediğini görmek için bunu biraz açık bırakacağım. * – Meltemi
İlgili kontrolör kodunu da gönderebilir misin? –