Цю відповідь я оновив, щоб відобразити сучасні умовності в капібарі. Я думаю, що це ідеально, оскільки це прийнята відповідь, і на що багато людей звертаються, шукаючи рішення. З урахуванням сказаного, правильний спосіб перевірити поточний шлях полягає у використанні has_current_path?
Шукача наданий Капибара, як описано тут: Натисніть тут
Приклад використання:
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"
це шлях