测试使用 url_for 方法的助手

Seb*_*ian 5 rspec

我有类似的辅助方法:

def my_helper(builder, name, order)
  options = {
    builder.search_key => builder.search_attributes.merge('sort' => order)
  }
  link_to name, url_for(options)
end
Run Code Online (Sandbox Code Playgroud)

Helper 向当前 url 和构建链接添加了一些参数(这里是简化示例)。当我尝试使用 RSpec 测试此方法时,出现异常ActionController::RoutingError: No route matches {:search=>{"sort"=>"published_at.asc"}}。如何存根当前链接、路径、控制器、动作?

Jua*_*tas 0

我建议您只检查选项是否按预期传入link_to(正确合并附加选项('sort' => order)),您不需要测试url_for,Rails 已经对此方法获得了良好的测试覆盖率!