Я обновил этот ответ, чтобы отразить современные соглашения в капибаре. Я думаю, что это идеально, так как это принятый ответ, и на что многие люди обращаются, когда ищут решение. С учетом вышесказанного, правильный способ проверки текущего пути - использовать 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"это путь