测试期间的ActionView :: MissingTemplate

时间:2011-08-17 17:33:34

标签: ruby-on-rails testing

我正在测试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 %>

所以我的问题是,有没有办法绕过或欺骗测试不试图访问视图,只是访问控制器方法?这不是我正在测试的系统,所以我真的不想制作一个新的空白视图或类似的东西。

1 个答案:

答案 0 :(得分:0)

我认为这个问题可能与控制器中的代码有关(remove_logs action),它通常有一些关于重定向到另一个url的代码,如下所示:

def destroy
  @tag = Tag.find(params[:id])
  @tag.destroy
  redirect_to :action => :index
end

我在我的rails应用程序中使用Test :: Unit进行测试,并且在重定向代码时可以正常运行。