Resolvendo problemas de input not found no Cucumber

No Cucumber podemos fazer testes que preenchem campos de texto, como abaixo:

When I fill "login" with "usuario"

Se o input não tiver um label associado a ele corretamente, o Cucumber não achará o campo e lançará um erro.

Para que um label esteja associado corretamente a um input, o atributo for do label deve ser o mesmo que o id do input, por exemplo:

 


Agora a parte legal, é que se quisermos testar se a associação entre o label e o input está correta, basta clicar no label e ver se o cursor se move para dentro do input, como abaixo:



No exemplo abaixo não deve funcionar pois a associação está errada:




Se esse teste não funcionar, provavelmente você terá problemas ao rodar o Cucumber.

Caso queira passar longe desse problema, evite criar códigos HTML na mão e utilize os helpers text_field e o label do Rails

E agora vou aproveitar para agradecer o Autor do post de como utilizar o Syntax Highlighting no Blogger

vlw!

2 comentários:

  1. Fala Perrela!!!

    Usar o atributo "for" corretamente, além de resolver o problema com o cucumber é uma boa prática do ponto de vista de de acessibilidade do seu site. Os leitores de tela utilizam o for do label para identificar o contexto do input associado.
    Alias todos os tipos de input (text, checkbox, radio, etc) devem, ou deveriam, ter um label associado...

    ResponderExcluir
  2. Veio... vcs só escrevem coisas que não entendo!

    ResponderExcluir