【发布时间】:2015-05-31 18:40:27
【问题描述】:
我正在尝试按照https://stackoverflow.com/a/17002140/4499505 上的建议编写测试。
我的简化测试:
test "test" do
log_in_as(@user)
get users_path
assert_template 'users/index'
assigns[:users].each do
assert_select 'a[href=?]', users_path(user)
end
end
错误结果:
NoMethodError: undefined method `each' for nil:NilClass
控制器方法:
def index
@users_grid = initialize_grid(User.where(verified: true),
per_page: 15,
order: 'users.username',
order_direction: 'desc')
end
显然assigns[:users] 是空的,即使在固件文件中有用户。我究竟做错了什么?我知道assigns[:users] 应该分配与users/index 上显示的完全相同的用户,这正是我想要的。
【问题讨论】:
-
显示你的控制器动作......
-
添加到原帖
-
你需要做
assigns[:users_grid] -
谢谢,这似乎取得了进展,但现在它给出了与下一行(
assert_select行)相关的错误:NameError: undefined local variable or method 'user'。
标签: ruby-on-rails ruby ruby-on-rails-4 integration-testing