Creo que sería posible en el navegador (del lado del cliente) para CSS "prueba de unidad". Sería más como un verificador automático que una unidad de prueba:
- Evaluar las condiciones finales de los atributos CSS que nos gustaría conservar para una determinada clase o ID de CSS (el resultado).
- Requerimos un documento de prueba HTML para representar el contenido estático y CSS. Todos los elementos deben incluirse en el contenido en contenedores separados.
- Después del renderizado, verifique con javascript los atributos finales finales o resultantes de los objetivos seleccionados y los elementos de salida no coincidentes. caso de las pruebas
Unidad:
selectores DOM:
.test1
.test2
#test3
Esto debería ser siempre los atributos finales:
CSSAttribute1, CSSFinalValue1
CSSAttribute2, CSSFinalValue2
CSSAttribute3, CSSFinalValue3
una función para establecer las reglas de prueba en JS podría ser:
addCSSUnitTest(".test1, .test2, #test3", "margin-left: 4px; font-size: 8px");
Luego verificamos si los elementos DOM tienen estos atributos finales.
Todo hecho en javascript después del renderizado. Pero de todos modos, esto no es práctico porque tendrás que construir muchos casos de prueba unitarios que aumentarán tu código de manera significativa.
También siempre debe tener un reset.css para la "compatibilidad" entre navegadores.
Una alternativa sería para designar clases de CSS que usted sabe que deben conservar sus atributos enteros. Crea una lista de selectores de DOM. Use jQuery para obtener los atributos de la clase CSS (directamente de la clase CSS) y verifique si se conservan en los elementos DOM objetivo. Este último método podría estar casi completamente automatizado, pero requerirá un verificador de JavaScript más complejo. Este último no comprobará CSS para los selectores de ID (por ejemplo, "# test3"), sólo las clases (por ejemplo," .test1")
Los comentarios sobre el hecho de que no están completos, no son verificables por una unidad, etc. son simplemente cojos. Por ejemplo, la herencia (cascada) en css es algo que sería muy interesante probar. Los ajustes entre navegadores también son interesantes de verificar. Y el selenio, o cualquier otra solución en el navegador no suena como que podría funcionar. A menos que tal vez esté basado en algo como qunit/jquery y, de hecho, toque el DOM para ver si el CSS se aplica como lo pretendía el autor (y podría ejecutarse/probarse en diferentes navegadores para validar que funcione). – Evgeny
La inclusión de comprobaciones CSS en las pruebas podría ayudar a probar algunos requisitos comerciales en BDD (como el tamaño de algo que es NxN y azul). Este tipo de cosas son ciertamente comprobables, incluso si su apariencia en el usuario-agente X no cumple con dichos requisitos (que es donde algo como el selenio puede llenar los huecos) –