2011-09-14 18 views
7

¿Cómo verifico el mensaje "Llene este campo" que aparece sobre los campos obligatorios cuando se presentan vacíos?¿Cómo probar Rails 3.1/HTML5 Campos requeridos con Cucumber/Capybara?

Ahora mi escenario de pepino parece ignorar por completo el campo vacío, enviando el formulario con éxito.

(estoy validar la presencia campos, y al presentar de forma manual, la forma sí muestra el mensaje)

+1

¿Qué conductor de Capybara estás usando? (por ejemplo, mecanizar, selenio) –

+0

Simplemente comprobando, pero ¿hay una validates_presence_of en el campo, y todavía se acepta en el envío? – Tonys

+0

@AndyWaite por defecto, al mirar el README de capibara, ahora parece que es: rack_test. y no es compatible con javascript, que no esperaba. entonces la respuesta sería usar un controlador js? – oliverbarnes

Respuesta

0

Si esto es una alerta basada en Javascript, es necesario utilizar algo así como el: conductor de selenio.

# Set selenium as the default driver for javascript 
Capybara.javascript_driver = :selenium 

# Register chrome browser for the :selenium driver 
Capybara.register_driver :selenium do |app| 
    Capybara::Selenium::Driver.new(app, :browser => :chrome) 
end 

Al hacerlo y etiquetar su escenario con @javascript, el simple uso de un paso como Then I should see "Please fill out this field" debería funcionar.

I have a gist up that summarizes using :selenium, :capybara-webkit, headless gem for both development and continuous integration. Puede ser útil para su configuración, pero también puede ser más de lo que está buscando en este momento.

Cuestiones relacionadas