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常用来测试它。我得到了: #
的未定义方法`total_pages'如何存根分页或其他一些方法来修复它?
答案 0 :(得分:5)
我使用这个解决方案:
view.stub(:will_paginate)
答案 1 :(得分:3)
您想要一个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
这将使您能够访问正确分页所需的所有属性。