レール 4、rspec 3
ページネーションとフェイカーを使用しています
以下は、ページネーションとフェイカーを実装する前は問題なかった古いテスト ケースです。
RSpec.describe "users/index", :type => :view do
before(:each) do
assign(:users, [
User.create!(
:name => "Name",
:email => "Name@mail.com",
:password => "mystrings"
),
User.create!(
:name => "Name",
:email => "Name2@mail.com",
:password => "mystrings"
)
])
end
it "renders a list of users" do
render
assert_select "tr>td", :text => "Name".to_s, :count => 2
assert_select "tr>td", :text => "Name@mail.com".to_s, :count => 1
assert_select "tr>td", :text => "Name2@mail.com".to_s, :count => 1
end
end
エラーメッセージ:
1) users/index renders a list of users
Failure/Error: render
ActionView::Template::Error:
undefined method `total_pages' for #<Array:0x007f90b55d7828>
# /Users/xuanliu/.rvm/gems/ruby-2.1.3/gems/will_paginate-3.0.7/lib/will_paginate/view_helpers.rb:73:in `will_paginate'
render
ビューでテストするために、現在のページを「更新」する以外に方法はありますか?
私の他の問題も同様だと思います-render
適切に使用することに関しても。
テストケース:
RSpec.describe "users/show", :type => :view do
before(:each) do
@user = assign(:user, User.create!(
:name => "Name5",
:email => "Name5@mail.com",
:password => "mystrings"
))
end
it "renders attributes in <p>" do
render
expect(rendered).to match(/Name/)
expect(rendered).to match(/Email/)
end
end
エラーメッセージ:
2) users/show renders attributes in <p>
Failure/Error: render
ActionView::Template::Error:
The @test variable appears to be empty. Did you forget to pass the collection object for will_paginate?
# /Users/xuanliu/.rvm/gems/ruby-2.1.3/gems/will_paginate-3.0.7/lib/will_paginate/view_helpers/action_view.rb:94:in `infer_collection_from_controller'
お時間をいただきありがとうございます。