分页的Rspec

分页的Rspec,rspec,ruby-on-rails-5,Rspec,Ruby On Rails 5,在我的rails应用程序中,will_paginate gem用于对文章进行分页。它显示每页10篇文章。因此,我写信来检查分页是否显示每页10篇文章 最初我创建了12个帖子。和 我已经查过第二页了。无论是显示所有帖子还是显示2个帖子。它只显示了2个帖子 it 'does paginate records' do 12.times {FactoryBot.create(:post, topic_id: topic.id, user: controller.current_user)} ge

在我的rails应用程序中,will_paginate gem用于对文章进行分页。它显示每页10篇文章。因此,我写信来检查分页是否显示每页10篇文章

最初我创建了12个帖子。和 我已经查过第二页了。无论是显示所有帖子还是显示2个帖子。它只显示了2个帖子

it 'does paginate records' do
  12.times {FactoryBot.create(:post, topic_id: topic.id, user: controller.current_user)}
  get :index, params: {topic_id: topic.id, start_date: Time.now - 5.days, end_date: Time.now + 5.day, page: 2}
  p (assigns(:posts))
 end

我需要在第2页显示2个帖子?如果有任何解决方案可以检查第2页是否有2篇文章?

旁注,如果要创建多篇文章,请使用FactoryBot.create\u list,而不是循环。如果需要,它会读取cleaner并返回集合。这是JSON响应还是HTML?我认为您应该使用
create\u list()
而不是在循环中创建帖子。是的,如果输入动态属性,则只需要在循环中创建。
it 'does paginate records' do
  first_two = create_list(:post, 2, topic_id: topic.id, user, controller.current_user }
  create_list(:post, 10, topic_id: topic.id, user: controller.current_user }

  get :index, params: {topic_id: topic.id, start_date: Time.now - 5.days, end_date: Time.now + 5.day, page: 2}
  expect(assigns(:posts)).to eq first_two
end
it 'does paginate records for second page' do
   12.times {FactoryBot.create(:post, :post4, topic_id: topic.id, user: controller.current_user)}
   get :index, params: {topic_id: topic.id, start_date: Time.now - 5.days, end_date: Time.now + 5.day, page: 2}
   expect(assigns(:posts).map(&:id).count).to eq 2
   expect(Post.count).to eq(12)
 end