我正在测试rails控制器并尝试使用代码执行get:
delete :remove_logs, :id => 3
它一直给我一个ActionView :: MissingTemplate异常。我知道这是因为没有与get相关的视图。这种方法有一条路线(来自rake路线):
remove_logs /devices/remove_logs/:id(.:format) {:controller=>"devices", :action=>"remove_logs"}
该功能本身适用于实际网页,因为它被调用:
<%= link_to "Remove History", remove_logs_path(device),
:class => "medium red button", :confirm => 'This will remove all history from
this device. Are you sure?', :method => :delete %>
所以我的问题是,有没有办法绕过或欺骗测试不试图访问视图,只是访问控制器方法?这不是我正在测试的系统,所以我真的不想制作一个新的空白视图或类似的东西。
答案 0 :(得分:0)
我认为这个问题可能与控制器中的代码有关(remove_logs action),它通常有一些关于重定向到另一个url的代码,如下所示:
def destroy
@tag = Tag.find(params[:id])
@tag.destroy
redirect_to :action => :index
end
我在我的rails应用程序中使用Test :: Unit进行测试,并且在重定向代码时可以正常运行。