导轨 4,rspec 3
我正在使用分页和伪造者
下面是一个旧的测试用例,在我实现分页和伪造之前很好。
RSpec.describe "users/index", :type => :view do
before(:each) do
assign(:users, [
User.create!(
:name => "Name",
:email => "Name@mail.com",
:password => "mystrings"
),
User.create!(
:name => "Name",
:email => "Name2@mail.com",
:password => "mystrings"
)
])
end
it "renders a list of users" do
render
assert_select "tr>td", :text => "Name".to_s, :count => 2
assert_select "tr>td", :text => "Name@mail.com".to_s, :count => 1
assert_select "tr>td", :text => "Name2@mail.com".to_s, :count => 1
end
end
错误信息:
1) users/index renders a list of users
Failure/Error: render
ActionView::Template::Error:
undefined method `total_pages' for #<Array:0x007f90b55d7828>
# /Users/xuanliu/.rvm/gems/ruby-2.1.3/gems/will_paginate-3.0.7/lib/will_paginate/view_helpers.rb:73:in `will_paginate'
除了使用render
“刷新”当前页面,还有什么方法可以让我在视图上进行测试?
我认为我的另一个问题是类似的 - 也是关于render
正确使用。
测试用例:
RSpec.describe "users/show", :type => :view do
before(:each) do
@user = assign(:user, User.create!(
:name => "Name5",
:email => "Name5@mail.com",
:password => "mystrings"
))
end
it "renders attributes in <p>" do
render
expect(rendered).to match(/Name/)
expect(rendered).to match(/Email/)
end
end
错误信息:
2) users/show renders attributes in <p>
Failure/Error: render
ActionView::Template::Error:
The @test variable appears to be empty. Did you forget to pass the collection object for will_paginate?
# /Users/xuanliu/.rvm/gems/ruby-2.1.3/gems/will_paginate-3.0.7/lib/will_paginate/view_helpers/action_view.rb:94:in `infer_collection_from_controller'
感谢您的时间。