黄瓜测试js.没有html时的动词功能.erb的存在

Cucumber Testing js.erb functions when no html.erb exists

本文关键字:erb 存在 功能 测试 js 没有 html 黄瓜      更新时间:2023-09-26

我的rails应用程序使用js。动词视图,而不是html。特定窗口的动词视图。这在实践中工作得很好,但是当我用水豚使用黄瓜测试时,它会给我一个错误

Missing template admin/groups with {:handlers=>[:erb, :rjs, :builder, :rhtml, :rxml],    :formats=>[:html], :locale=>[:en, :en]} in view paths

当我单击与此特定视图相关的按钮时。没有groups.html.erb,但有groups.js.erb。我想告诉cucumber/capybara不要尝试渲染groups。html。erb而要渲染groups。js。erb。我不希望生成一个不必要的html文件来呈现下面的转义javascript正在做的相同的事情。

groups.js.erb:

$("#admin_content").html("<%= escape_javascript(render :partial => 'groups') %>");

相关管理控制器方法:

def groups
    @groups = Group.all
end

您应该为您的响应使用适当的MIME类型处理。试试这个:

def groups
  @groups = Group.all
  respond_to do |format|
    format.js
  end
end

最后你可以更具体地回答:

format.js { render layout: false }

更多关于respond_to的信息。

注意:如果你的控制器只管理js响应,你可以在类的顶部添加respond_to :js,然后在你的动作中使用respond_with @object