Teste: como testar essa exibição contém dados desejados

Digamos que um Chef possa fazer Receitas, e os Sous-Chefs possam criar Receitas que devem ser aprovadas por um Chefe de Cozinha.

Você quer testar isso, quando um Chefe de Cozinha vê sua página inicial, ela vê Receitas que ela mesma criou. Você também quer testar que ela vê Receitas aguardando sua aprovação.

Eu posso pensar em duas maneiras de fazer isso:

Teste se a visualização contém determinadas palavras, como "Suas receitas" e "Receitas aguardando sua aprovação"Adicione atributos desnecessários aos elementos html que você está usando para verificar um elemento com "id = recipe_1" ou "data-for-the-sake-of-testing = 1"

Eu não gosto muito dessas duas abordagens.

Por que a abordagem # 1 é uma drogaTestes incrivelmente frágeis. Toda vez que você quiser fazer pequenas atualizações na cópia, os testes serão interrompidos.i18n Como isso funcionará com essa abordagem?

Existem provavelmente mais motivos, mas esses dois são bem grandes.

Por que a abordagem # 2 é uma porcaria?

Quão irritante ter marcação supérflua apenas por uma questão de teste! O usuário não deve ter um tamanho maior de download por causa dos testes.

O que é uma boa abordagem para isso? Estou interessado em ouvir qualquer alternativa, em qualquer linguagem que você pensa. Eu penso principalmente em Ruby, Test :: Unit, Minitest, RSpec e Pepino (embora minhas habilidades no Cuke sejam obsoletas), mas se outras linguagens / frameworks tenho isso descoberto, adoraria ver o que eles estão fazendo também.

questionAnswers(4)

yourAnswerToTheQuestion