#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