2012-09-19 27 views
5

Dependiendo de qué página se esté viendo, quiero usar una imagen diferente para mi logotipo; el logo en la página de inicio es más grande. Me gusta usar petición especificaciones para probar el comportamiento, por lo que me gustaría hacer algo como esto:¿Cómo probar qué imagen se muestra con rspec?

describe 'Visit "advertentie/1"' do 
    it 'contains add details' do 
     add = create(:add_with_photos) 
     visit add_path add 
     page.should have_selector('img[alt="logo-small"]') # CHECK IMAGE ALT 
     page.should have_content(add.name) 
    end 
end 

y la prueba se ejecuta agains algunos haml HTML generado:

<div class='logo-wrapper'> 
    <h1> 
    <a href="/"><img alt="Logo-big" src="/assets/logo-small.png" /> 
    <br> 
    <span>UpMarket</span> 
    </a> 
    </h1> 
</div> 

sin embargo este selector no funciona . ¿Es esto posible y cómo?

+0

¿Cómo se ve el código HTML correspondiente como? – jdl

+1

Bueno, para un 100% TDD el HTML no debería parecerse a nada todavía, por supuesto, pero voy a estar mal y añadirlo a mi pregunta de todos modos;) –

+1

TDD significa que tiene salida cero. Claramente hay algo de HTML que 'have_selector' está controlando (o debería haber). Eso es todo lo que estaba pidiendo. – jdl

Respuesta

15

¿Has probado el método have_css?

have_css("img[src*='w3schools']") 

(Selecciona todos los elementos <img> cuyo valor del atributo src contiene la subcadena "w3schools")

+0

Especificaciones ecológicas. Tengo que amarlos. Gracias, src parecía un atributo más confiable para probar, ya que preferiría que los alts fueran un poco más descriptivos. Podría usar esto en muchas más situaciones también, con el '*', nunca lo usé realmente. –

+0

Esto funciona para mí, pero ¿qué hace el '*'? Todo lo que puedo encontrar es que se usa como "splat", pero esto parece diferente. Gracias. – haley

+0

El selector de atributo '* =' significa que 'el atributo contiene la subcadena'. Consulte [w3schools] (http://www.w3schools.com/cssref/css_selectors.asp) para obtener una descripción general de los posibles selectores. – hjblok

Cuestiones relacionadas