Saya telah memperbarui jawaban ini untuk mencerminkan konvensi modern di capybara. Saya pikir ini ideal karena ini adalah jawaban yang diterima, dan apa yang dirujuk oleh banyak orang ketika mencari solusi. Dengan itu, cara yang benar untuk memeriksa jalur saat ini adalah dengan menggunakan has_current_path?
pencocokan yang disediakan oleh Capybara, seperti yang didokumentasikan di sini: Klik Di Sini
Contoh penggunaan:
expect(page).to have_current_path(people_path(search: 'name'))
Seperti yang dapat Anda lihat di dokumentasi, opsi lain tersedia. Jika halaman saat ini adalah /people?search=name
tetapi Anda hanya peduli bahwa itu ada di /people
halaman terlepas dari param, Anda dapat mengirim only_path
opsi:
expect(page).to have_current_path(people_path, only_path: true)
Selain itu, jika Anda ingin membandingkan seluruh URL:
expect(page).to have_current_path(people_url, url: true)
Penghargaan untuk Tom Walpole karena menunjukkan metode ini.
"/people?search=name"
bukan jalan ."/people"
is a path