Cha*_*shu 10 testing rspec ruby-on-rails
我在一个动作中有以下代码:
render :file => 'public/404.html' and return
Run Code Online (Sandbox Code Playgroud)
这在浏览器中工作正常.我写了以下rspec示例来测试这个:
it "renders 404" do
get :new
response.should render_template('public/404.html')
end
Run Code Online (Sandbox Code Playgroud)
运行此示例会导致以下错误:
Failure/Error: response.should render_template('public/404.html')
Expected block to return true value.
Run Code Online (Sandbox Code Playgroud)
我也试过,response.should render_template(:file => 'public/404.html')但这也导致错误.
我该怎么测试呢?
Kam*_*arz 18
你应该使用:
response.should render_template(:file => "#{Rails.root}/public/404.html")
Run Code Online (Sandbox Code Playgroud)
如果要显示404页面,请记住设置状态代码.这也是我要测试的:it { should respond_with :not_found }
而不是直接渲染public/404,有更好的方法来做到这一点.看看这个答案:如何在Rails中重定向到404?
| 归档时间: |
|
| 查看次数: |
13210 次 |
| 最近记录: |