Railstutorial第9章用户索引测试在修改分页后引发了失败

时间:2015-04-16 07:15:34

标签: railstutorial.org

我只是好奇它是如何发生的

尝试将分页中的每页用户数减少到10(默认为30,我认为太长)。我的索引测试就像这样引发了失败

1) Failure:
UsersIndexTest#test_index_as_admin_including_pagination_and_delete_links
[/home/ubuntu/workspace/contoh/test/integration/users_index_test.rb:17]:
Expected at least 1 element matching "a[href="/users/338193910"]", found 0..
Expected 0 to be >= 1.

我改变的只是分页参数 Listing 9.42

@users = User.paginate(page: params[:page],:per_page => 10)
app / controllers / users_controller.rb中的

,这是/users_index_test.rb

中的第17-20行
assert_select 'a[href=?]', user_path(user), text: user.name
unless user == @admin
assert_select 'a[href=?]', user_path(user), text: 'delete',
                                                method: :delete

2 个答案:

答案 0 :(得分:3)

我有同样的问题因为我改变了这个 在我的app / controllers / users_controller.rb中:

def index
  @users = User.paginate(page: params[:page])
end

def index
  @users = User.paginate(page: params[:page], per_page: 10)
end

现在我在users_index_test

中遇到了同样的错误

在浏览和阅读本文之后,我想出了以下解决方案:

在test / integration / users_index_test.rb中,我改变了:

first_page_of_users = User.paginate(page: 1)

first_page_of_users = User.paginate(page: 1, per_page: 10)

现在测试成功了:)

答案 1 :(得分:1)

尝试一些配置后

我发现将 per_page 参数放在全局参数中是解决方案

所以,我把它放在 app / controller / application_controller.rb 这一行

WillPaginate.per_page = 10