Guia de Testing en el Frontend Versión: 1.0.0Estado: VigenteEntrada en vigor desde: | Guia de Testing en el Frontend Versión: 1.0.0Estado: PRE-RELEASEEntrada en vigor desde: |
---|
Las guías de desarrollo son un documento que busca facilitar el onboarding y la homogeneidad de los proyectos en la STIC. La STIC podrá estudiar los casos excepcionales los cuales serán gestionados a través de los responsables del proyecto correspondiente y autorizados por el Área de Gobernanza de la STIC. Asimismo cualquier aspecto no recogido en estas guías deberá regirse en primera instancia por las guías técnicas correspondientes al esquema nacional de seguridad y esquema nacional de interoperabilidad según correspondencia y en su defecto a los marcos normativos y de desarrollo software establecidos por la Junta de Andalucía, debiendo ser puesto de manifiesto ante la STIC.
La STIC se reserva el derecho a la modificación de la guía sin previo aviso, tras lo cual, notificará del cambio a los actores implicados para su adopción inmediata según la planificación de cada proyecto.
En el caso de que algún actor considere conveniente y/o necesario el incumplimiento de alguna de las normas y/o recomendaciones, deberá aportar previamente la correspondiente justificación fehaciente documentada de la solución alternativa propuesta, así como toda aquella documentación que le sea requerida por la STIC para proceder a su validación técnica.
Contacto Arquitectura: l-arquitectura.stic@juntadeandalucia.es
Los cambios documentados, vendr谩n acompa帽ados de un registro de las modificaciones. De este modo se podr谩 realizar un seguimiento y consultar su evoluci贸n. Orden谩ndose de mas recientes a menos recientes, prestando especial cuidado a las cabeceras de la tablas d贸nde se indican las fechas de entrada en vigor y versi贸n.
En este documento se describir谩n los principales aspectos a tener en cuenta a la hora de dise帽ar y ejecutar test en los desarrollos frontales, que ser谩n ejecutables dentro de los procesos de IC de la STIC.
El c贸digo de los ejemplos compartidos en esta gu铆a de dise帽o se puede encontrar en el espacio p煤blico聽
Este apartado pretende compartir algunas configuraciones consideradas de utilidad para una correcta ejecuci贸n de los test.
@open-wc/testing
@types/mocha
@web/test-runner
@web/test-runner-playwright
sinon
playwright
Alerta Acoplamiento
//Cuidado!!!!! este código genera acoplamiento al html generado por el render del componente, no es recomendable ya que los test deben ser funcionales. Nos sirve para testear que el valor de la propiedad se renderiza correctamente, no solo que se ha definido
expect(el.shadowRoot?.getElementById("property-value")?.textContent).to.equal('default value');
Alerta Acoplamiento
//Cuidado!!!!! este código genera acoplamiento al html generado por el render del componente, no es recomendable ya que los test deben ser funcionales. Nos sirve para testear que el valor del atributo se renderiza correctamente, no solo que se ha definido
expect(el.shadowRoot?.getElementById("property-value")?.textContent).to.equal('default value');
La herramienta de ejecuci贸n de los test es el Web Test Runner (wtr).
La configuraci贸n ofrecida, permite la transpilaci贸n de forma directa por el wtr. Dicha transpilaci贸n se genera en memoria que, salvo algunos casos concretos (por ejemplo dentro de un iframe),聽 no tiene implicaci贸n.
Script
EL script utilizado es test → npm run test
Para la depurar WTR ofrece la posiblidad de probarlo en el navegador de forma manual (opci贸n D) y ah铆 poder hacer la depuraci贸n que se considere necesaria. Combinado con la opci贸n --watch, se realizar谩 una reejecuci贸n con cada cambio detectado.
Otra facilidad que ofrece WTR es que, de todos los test lanzados, puedes centrarte en uno solo (opci贸n F). La lista de ficheros con test fallidos en su ejecuci贸n aparecer谩n en rojo.
Script
EL script utilizado es test → npm run test:debug
Se puede configurar para lanzar los test en diferentes navegadores. Por normativa, los desarrollos deben ser compatibles con los navegadores evergreen ( Chrome/Chromium, Microsoft Edge, Firefox). Safari no es obligatorio actualmente
npx playwright install --with-deps
Para ver diferentes opciones que ofrece el instalador pod茅is usar la opci贸n de help
npx playwright install --help
Con la configuraci贸n establecida se ejecutar谩n los test para todos los navegadores configurados.
Advertencia
No está permitido el uso de playwright como parte del desarrollo y definición de los test. Solo está permitido su uso como launcher.
Advertencia sobre la carga de módulos
Un iframe genera un contexto independiente para la ejecución del código alojado dentro de él. Esto implica que se debe incluir las dependencias necesarias para la ejecución de forma manual.
Advertencia sobre el acceso a los módulos
Web Test Runner (WTR) genera la transpilación de los elemento en memoria. Esto implica que los ficheros js resultantes no están disponibles para importarlos dentro del iframe. Para poder acceder a ellos se debe:
Advertencia sobre el código
Advertencia sobre el timeout
Normativa | Descripción | Versión Activa | Versión Pre-Release | Fecha de Pre-release |
---|---|---|---|---|
Documento normativo y pautas sobre el uso de Atomic Web Design | 1.0 | 1.0 | - | |
Documento normativo y pautas sobre el desarrollo de web components | 1.0 | 1.0 | pte de especificar | |
Documento normativo y pautas sobre el uso del color en los web components a través del theming | 1.0 | 1.0 | pte de especificar | |
Documento normativo y pautas sobre el uso de los distintos elementos tipográficos en los web components a través del theming | 1.0 | 1.0 | pte de especificar | |
Documento normativo y pautas sobre el uso de los estados en los web components a través del theming | 1.0 | 1.0 | pte de especificar | |
Documento normativo y pautas sobre el uso de las formas en los web components a través del theming | 1.0 | 1.0 | pte de especificar | |
Documento normativo y pautas sobre el testing | pte de especificar | pte de especificar | pte de especificar |
Guía Implementación | Descripción | Versión Activa | Versión Pre-Release | Fecha de Pre-release |
---|---|---|---|---|
Guia de implementación en base a Atomic Web-Design | 1.0 | 1.0 | - | |
Guía de implementación acerca de cómo documentar correctamente los web components con las herramientas propuestas | 1.0 | 1.0 | pte de especificar | |
Guía de implementación sobre la implementación y uso del theme en los web components y su extensión a otras áreas/proyectos | 1.0 | 1.0 | pte de especificar | |
Guía de implementación sobre los distintos elementos que se deben tener en cuenta en el modelo model-view-modelview | 1.0 | 1.0 | pte de especificar | |
Guía de implementación sobre la instalación, uso y desarrollo con el Scaffolding de la STIC | 1.0 | 1.0 | pte de especificar | |
Guía de implementación sobre el testing | pte de especificar | pte de especificar | pte de especificar |
Guía de diseño | Descripción | Versión Activa | Fecha de activa | Versión Pre-Release | Fecha de Pre-release |
---|---|---|---|---|---|
Sistema de diseño | Espacio de referencia donde se establecen las pautas que deben seguir los diseños de las aplicaciones en el sas | 1.5 |
|