Я обновил этот ответ, чтобы отразить современные соглашения в капибаре. Я думаю, что это идеально, так как это принятый ответ, и на что многие люди обращаются, когда ищут решение. С учетом вышесказанного, правильный способ проверки текущего пути - использовать has_current_path?
средство сопоставления, предоставленное Capybara, как описано здесь: Нажмите здесь
Пример использования:
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)
Благодарим Тома Уолпола за указание на этот метод.
"/people?search=name"
это не путь ."/people"
это путь