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

Railstutorial Chapter 9 User index test raised a failure after modify pagination

我只是好奇它是怎么发生的

在尝试将分页中每页的用户数减少到 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

尝试一些配置后

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

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

WillPaginate.per_page = 10

我遇到了同样的问题,因为我改变了这个 在我的 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)

测试成功:)