Estoy probando vistas con Cucumber and Rails en este momento y realmente disfruto de la experiencia. Puedo decir:¿Hay alguna manera de probar (Unidad/Integración) que CSS se aplique a los Elementos HTML esperados?
Background:
Given I am logged in as a customer
Scenario: View the Welcome Page
When I go to the home page
Then I should be on the "Welcome" page
And I should see the following in the sidebar:
| selector | text |
| h3 | Search |
| .home-page | Home |
| .about-page | About |
Ahora me pregunto, ¿cómo puedo ir un paso más allá y decir:
And I should see the following colors on the "Welcome" page:
| selector | background |
| #content | white |
| #sidebar | grey |
| #navigation | blue |
Siento que he visto que es posible hacer esto con algo como Node.js u otro servidor junto a javascript, porque todo depende del navegador. ¿Hay alguna manera de hacer esto, tal vez con Selenium solo en Safari y Firefox?
Solo quiero probar principalmente colores y fuentes, no necesariamente el diseño b/c de la locura de navegador cruzado. ¿Cómo podría hacer esto? Tal vez un poco Jasmine con Cucumber?
Gracias!
actualización
Gracias a @idlefingers, aquí hay algo que funciona:
Configuración: Pepino, capibara.
características/soporte/env.rb:
Capybara.javascript_driver = :selenium
* Características/step_definitions/css_steps.rb: *
Then /^I should see the color "([^"]+)" on the ([^"]+)$/ do |color, selector|
element_color = page.evaluate_script('$("##{selector}").css("border-left-color");') # "rgb(221, 221, 221)"
assert_equal color, some_color_conversion_method(element_color)
end
características/some.feature:
And I should see the color "red" on the sidebar
Si hay una manera mejor, me encantaría ¡saber!
¡gran lectura! Voy a verificar que se evalúe e implemente también lo que dicho artículo decía. Gracias. –