页面url大约为/people?search=name

current_path.should == people_path(:search => 'name')

但它没有说

expected: "/people?search=name"
got: "/people"

我们怎样才能让它通过?有什么办法吗?

推荐答案

我更新了这个答案,以反映水豚的现代习俗.我认为这是理想的,因为这是公认的答案,也是许多人在寻找解决方案时提到的问题.尽管如此,判断当前路径的正确方法是使用Capybara提供的has_current_path? matcher,如本文所述:Click Here

用法示例:

expect(page).to have_current_path(people_path(search: 'name'))

正如您在文档中看到的,还有其他选项可用.如果当前页面为/people?search=name,但不管参数如何,您只关心它在/people页面上,那么您可以发送only_path选项:

expect(page).to have_current_path(people_path, only_path: true)

此外,如果要比较整个URL:

expect(page).to have_current_path(people_url, url: true)

汤姆·沃尔波尔指出了这种方法,这要归功于他.

Ruby-on-rails相关问答推荐

DELETE_IF和REJECT的意外行为!方法

Ruby on rails Admin-有没有一种方法可以在成对的管理控制器类中合并、重用应用程序控制器类?

DateTime的最小数据提交格式

Django模型在关系更新时更新相关对象

如何保持 en.yml DRY?

你能从 Heroku dynos/workers 中获得多少性能?

为什么在保存对象后使用重新加载方法? (Hartl Rails Tut 6.30)

jQuery ajax 请求不会触发 Rails 控制器的 JS 响应?

如何在 Windows 上为 Ruby 安装 sqlite3?

在本地 Rails 开发环境中获取真实 IP 地址

Ruby on Rails:调试 rake 任务

在 Ruby on Rails 中循环对象属性

Rails:带参数的 URL/路径

从 ActiveRecord 对象中提取两个属性的快捷方式?

是否可以设置 travis 来运行多种语言的测试?

Mongoid OR 查询语法

如何测试也定义为辅助方法的 ApplicationController 方法?

何时在 Ruby on Rails 中使用 lambda?

ruby on rails 如何处理 NaN

在 Rails 4.1 中,如何通过枚举符号查找记录?