Rspec для разбивки на страницы

#rspec #ruby-on-rails-5

#rspec #ruby-on-rails-5

Вопрос:

В моем приложении rails will_paginate gem используется для разбивки сообщений на страницы. На странице отображается 10 сообщений. Итак, я пишу, чтобы проверить разбивку на страницы, показывает ли она 10 сообщений на странице или нет.

Изначально я создал 12 сообщений. и я проверил страницу 2. показывает ли она все сообщения или 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 сообщения?

Комментарии:

1. Кроме того, используйте FactoryBot.create_list, если вы хотите создать несколько элементов вместо выполнения цикла. Он считывает чище и возвращает коллекцию, если вам это нужно.

2. Это ответ в формате JSON или HTML?

Ответ №1:

 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