Как проверить страницу просмотра (paginate) с помощью rspec-rails2? - PullRequest
1 голос
/ 19 октября 2010

rails 3 rspec-rails 2

В контроллере:

def index   @users = User.paginate
  :page => params[:page],:per_pae => 5
end

Вид:

<h1>User list</h1> 
<% @users.each do |user| %>
  <p>
    <%= user.name %>
  </p>
<% end %>
<%= will_paginate @users %>

Теперь я использую rspec-rails 2 для проверки вида.

require 'spec_helper'

describe "/users/index.html.erb" do   
  before(:each) do
    assign(:users, [
      stub_model(User),
      stub_model(User),
      stub_model(User,
      stub_model(User)
    ])
  end

  it "renders a list of contracts" do
    render
    rendered.should contain "User list"
  end
end

Теперь я использую rspec common для его проверки. Я получил: undefined метод `total_pages 'для #

Как заглушить пагинацию или каким-либо другим способом исправить это?

Ответы [ 2 ]

5 голосов
/ 29 ноября 2010

Я использую это решение:

view.stub(:will_paginate)
3 голосов
/ 31 октября 2010

Требуется экземпляр объекта коллекции will_paginate:

before(:each) do
  page = 1
  per_page = 1
  total_entries = 4
  users = WillPaginate::Collection.create(page, per_page, total_entries) do |pager|
    pager.replace([stub_model(User), stub_model(User), stub_model(User), stub_model(User)])
  end
  assigns(:users, users)
end

Это даст вам доступ ко всем атрибутам, необходимым для правильного разбиения на страницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...