Estoy usando Ruby on Rails con pepino y capibara.
¿Cómo haría para probar un comando de confirmación simple ("¿Está seguro?")?
Además, ¿dónde puedo encontrar más documentación sobre este tema?
automated-tests
capybara
integration-testing
Yuval Karmi
fuente
fuente
Respuestas:
Parece que no hay forma de hacerlo en Capybara, desafortunadamente. Pero si está ejecutando sus pruebas con el controlador Selenium (y probablemente con otros controladores que admitan JavaScript), puede piratearlo. Justo antes de realizar la acción que abriría el cuadro de diálogo de confirmación, anule el
confirm
método para devolver siempre verdadero. De esa manera, el cuadro de diálogo nunca se mostrará y sus pruebas pueden continuar como si el usuario hubiera presionado el botón Aceptar. Si desea simular lo contrario, simplemente cámbielo para que devuelva falso.fuente
El controlador de selenio ahora admite esto
Desde Carpincho accederías así:
o
o
fuente
page.driver.browser
en la respuesta de DerekImplementé estos dos pasos web en
/features/step_definitions/web_steps.rb
:fuente
Si desea probar específicamente el mensaje que se muestra, aquí hay una forma particularmente peligrosa de hacerlo. No lo apruebo como un código hermoso, pero hace el trabajo. Deberá cargar http://plugins.jquery.com/node/1386/release , o cambiarlo para hacer cookies de forma nativa si no desea jQuery.
Utilice este tipo de historia:
Y estos pasos
fuente
Actualizando esto para las versiones actuales de Capybara. La mayoría de los controladores de Capybara admiten la API modal. Para aceptar un modal de confirmación, harías
Esto se puede usar en Pepino con algo como
que hará clic en el botón nombrado y luego aceptará un cuadro de confirmación con un mensaje de texto que coincida
fuente
El controlador capybara-webkit también lo admite.
fuente
fuente
Prickle agrega algunos métodos prácticos y prácticos para trabajar con ventanas emergentes en selenium y webkit
fuente
Esta esencia tiene pasos para probar un cuadro de diálogo de confirmación JS en Rails 2 y 3 con cualquier controlador de Capybara.
Es una adaptación de una respuesta anterior, pero no necesita el complemento jQuery Cookie.
fuente
Probé las respuestas anteriores sin suerte. Al final, esto funcionó para mí:
fuente