Pruebas: cómo probar esa vista contiene datos deseados

Digamos que un Chef puede hacer recetas, y los Sous-Chefs pueden crear recetas que deben ser aprobadas por un Chef Jefe.

Quieres probar eso, cuando un Jefe de cocina ve su página de inicio, ve Recetas que ella misma creó. También quieres probar que ella ve que hay Recetas esperando su aprobación.

Puedo pensar en dos maneras de hacer esto:

Compruebe que la vista contiene ciertas palabras, como "Sus recetas" y "Recetas en espera de su aprobación"Agregue atributos innecesarios a los elementos html que está usando para que pueda verificar si hay un elemento con "id = recipe_1" o "data-for-the-sake-of-testing = 1"

Me disgustan mucho estos dos enfoques.

¿Por qué el enfoque # 1 apesta?Pruebas increíblemente frágiles. Cada vez que desee hacer actualizaciones menores a la copia, las pruebas se interrumpirán.i18n? ¿Cómo funcionará eso con este enfoque?

Probablemente hay más razones, pero esas dos son bastante grandes.

¿Por qué el enfoque # 2 apesta?

¡Qué molesto tener un marcado superfluo por el simple hecho de probar! El usuario no debe tener un mayor tamaño de descarga por el bien de las pruebas.

¿Cuál es un buen enfoque para esto? Estoy interesado en escuchar cualquier alternativa, en cualquier idioma en el que pienses. Pienso principalmente en Ruby, Test :: Unit, Minitest, RSpec y Cucumber (aunque mis habilidades de Cuke están obsoletas), pero si hay otros idiomas / marcos tener esto resuelto, me encantaría ver lo que están haciendo, también.

Respuestas a la pregunta(4)

Su respuesta a la pregunta