Saya menggunakan Ruby on Rails dengan Cucumber dan Capybara.
Bagaimana saya akan menguji perintah konfirmasi sederhana ("Apakah Anda yakin?")?
Selain itu, di mana saya dapat menemukan dokumentasi lebih lanjut tentang masalah ini?
automated-tests
capybara
integration-testing
Yuval Karmi
sumber
sumber
Jawaban:
Sepertinya tidak ada cara untuk melakukannya di Capybara, sayangnya. Tetapi jika Anda menjalankan pengujian dengan driver Selenium (dan mungkin driver lain yang mendukung JavaScript), Anda dapat meretasnya. Tepat sebelum melakukan tindakan yang akan memunculkan dialog konfirmasi, ganti
confirm
metode untuk selalu mengembalikan nilai true. Dengan begitu, dialog tidak akan pernah ditampilkan, dan pengujian Anda dapat dilanjutkan seolah-olah pengguna telah menekan tombol OK. Jika Anda ingin mensimulasikan kebalikannya, cukup ubah menjadi false.sumber
Driver selenium sekarang mendukung ini
Dari Kapibara Anda akan mengaksesnya seperti ini:
atau
atau
sumber
page.driver.browser
dalam jawaban DerekSaya telah menerapkan dua langkah web ini di
/features/step_definitions/web_steps.rb
:sumber
Jika Anda ingin secara khusus menguji pesan yang ditampilkan, berikut ini cara yang sangat hack untuk melakukannya. Saya tidak mendukungnya sebagai kode yang indah, tetapi itu menyelesaikan pekerjaan. Anda harus memuat http://plugins.jquery.com/node/1386/release , atau mengubahnya untuk melakukan cookie secara native jika Anda tidak menginginkan jQuery.
Gunakan cerita semacam ini:
Dan langkah-langkah ini
sumber
Memperbarui ini untuk rilis Kapibara saat ini. Kebanyakan pengemudi Kapibara saat ini mendukung API modal. Untuk menerima modal konfirmasi yang akan Anda lakukan
Ini bisa digunakan di Mentimun dengan sesuatu seperti
yang akan mengklik tombol bernama dan kemudian menerima kotak konfirmasi dengan pesan pencocokan teks
sumber
The capybara-webkit sopir mendukung ini juga.
sumber
sumber
Prickle menambahkan beberapa metode praktis yang berguna untuk bekerja dengan popup di selenium dan webkit
sumber
Inti ini memiliki langkah-langkah untuk menguji dialog konfirmasi JS di Rails 2 dan 3 dengan driver Capybara.
Ini adalah adaptasi dari jawaban sebelumnya, tetapi tidak membutuhkan plugin jQuery Cookie.
sumber
Mencoba jawaban di atas tidak berhasil. Pada akhirnya ini berhasil untuk saya:
sumber