jest - arquisoft.github.io€¦ · debido a que es más accesible, ya que no se necesita gente...
TRANSCRIPT
![Page 1: Jest - arquisoft.github.io€¦ · debido a que es más accesible, ya que no se necesita gente experta en ningún framework determinado. Jest Lost tests corren en paralelo La API](https://reader034.vdocuments.net/reader034/viewer/2022043009/5f9c647dca41eb05b020e7a3/html5/thumbnails/1.jpg)
Jest▪ Alejandro León Pereira
▪ Andrés Fernández González
▪ María González Gancedo
▪ Iñaki Salgado Uralde
▪ Pablo González Argüelles
SemEs1-05
![Page 2: Jest - arquisoft.github.io€¦ · debido a que es más accesible, ya que no se necesita gente experta en ningún framework determinado. Jest Lost tests corren en paralelo La API](https://reader034.vdocuments.net/reader034/viewer/2022043009/5f9c647dca41eb05b020e7a3/html5/thumbnails/2.jpg)
¿Qué es Jest?
Framework de JavaScript que permiten realizar
pruebas automatizadas
Enfoque simple
Creado por los ingenieros de Facebook
Viene integrado en React
Funciona en proyectos con:
![Page 3: Jest - arquisoft.github.io€¦ · debido a que es más accesible, ya que no se necesita gente experta en ningún framework determinado. Jest Lost tests corren en paralelo La API](https://reader034.vdocuments.net/reader034/viewer/2022043009/5f9c647dca41eb05b020e7a3/html5/thumbnails/3.jpg)
Factores importantes:
Sin configuración
Gran API : Bien documentado, bien mantenido.
Aislamiento: pruebas ejecutadas en sus propios procesos
Instantáneas / Snapshots: rastrea objetos grandes con facilidad
![Page 4: Jest - arquisoft.github.io€¦ · debido a que es más accesible, ya que no se necesita gente experta en ningún framework determinado. Jest Lost tests corren en paralelo La API](https://reader034.vdocuments.net/reader034/viewer/2022043009/5f9c647dca41eb05b020e7a3/html5/thumbnails/4.jpg)
Características:
Rápido y seguro
Cobertura de código
Mock Functions
Grandes excepciones
Charlas y documentos
Open Collective
![Page 5: Jest - arquisoft.github.io€¦ · debido a que es más accesible, ya que no se necesita gente experta en ningún framework determinado. Jest Lost tests corren en paralelo La API](https://reader034.vdocuments.net/reader034/viewer/2022043009/5f9c647dca41eb05b020e7a3/html5/thumbnails/5.jpg)
¿Quién usa Jest?
![Page 6: Jest - arquisoft.github.io€¦ · debido a que es más accesible, ya que no se necesita gente experta en ningún framework determinado. Jest Lost tests corren en paralelo La API](https://reader034.vdocuments.net/reader034/viewer/2022043009/5f9c647dca41eb05b020e7a3/html5/thumbnails/6.jpg)
Ejemplo
# yarn add --dev jest
# npm install --save-dev jest
sum.js
sum.test.jspackage.json
# yarn test
# npm run test
1 2
3 4
5 6
![Page 7: Jest - arquisoft.github.io€¦ · debido a que es más accesible, ya que no se necesita gente experta en ningún framework determinado. Jest Lost tests corren en paralelo La API](https://reader034.vdocuments.net/reader034/viewer/2022043009/5f9c647dca41eb05b020e7a3/html5/thumbnails/7.jpg)
Ingenieros de Facebook
Stakeholders
Desarrolladores
El equipo Fundación
JavaScript de Facebook
Clientes
![Page 8: Jest - arquisoft.github.io€¦ · debido a que es más accesible, ya que no se necesita gente experta en ningún framework determinado. Jest Lost tests corren en paralelo La API](https://reader034.vdocuments.net/reader034/viewer/2022043009/5f9c647dca41eb05b020e7a3/html5/thumbnails/8.jpg)
Principales atributos de
calidad y restricciones
![Page 9: Jest - arquisoft.github.io€¦ · debido a que es más accesible, ya que no se necesita gente experta en ningún framework determinado. Jest Lost tests corren en paralelo La API](https://reader034.vdocuments.net/reader034/viewer/2022043009/5f9c647dca41eb05b020e7a3/html5/thumbnails/9.jpg)
Atributos de Calidad
Comportamiento temporal
Velocidad 6x
Capacidad para ser instalado
Simple dependencia
Adaptabilidad
Cualquier framework o biblioteca JS
![Page 10: Jest - arquisoft.github.io€¦ · debido a que es más accesible, ya que no se necesita gente experta en ningún framework determinado. Jest Lost tests corren en paralelo La API](https://reader034.vdocuments.net/reader034/viewer/2022043009/5f9c647dca41eb05b020e7a3/html5/thumbnails/10.jpg)
Restricciones
Poca flexibilidad en proyectos muy grandes
Difícil personalización
No está optimizado para pruebas end2end
Falta de madurez
![Page 11: Jest - arquisoft.github.io€¦ · debido a que es más accesible, ya que no se necesita gente experta en ningún framework determinado. Jest Lost tests corren en paralelo La API](https://reader034.vdocuments.net/reader034/viewer/2022043009/5f9c647dca41eb05b020e7a3/html5/thumbnails/11.jpg)
Aspectos
de
desarrollo
¿Qué quiere decir esto?
Módulos y arquitectura
Issues
![Page 12: Jest - arquisoft.github.io€¦ · debido a que es más accesible, ya que no se necesita gente experta en ningún framework determinado. Jest Lost tests corren en paralelo La API](https://reader034.vdocuments.net/reader034/viewer/2022043009/5f9c647dca41eb05b020e7a3/html5/thumbnails/12.jpg)
Aspectos
de
desarrollo
¿Cómo ayudar con el desarrollo?
Código de conducta para desarrollar
Good first issues
![Page 13: Jest - arquisoft.github.io€¦ · debido a que es más accesible, ya que no se necesita gente experta en ningún framework determinado. Jest Lost tests corren en paralelo La API](https://reader034.vdocuments.net/reader034/viewer/2022043009/5f9c647dca41eb05b020e7a3/html5/thumbnails/13.jpg)
Aspectos de desarrollo
![Page 14: Jest - arquisoft.github.io€¦ · debido a que es más accesible, ya que no se necesita gente experta en ningún framework determinado. Jest Lost tests corren en paralelo La API](https://reader034.vdocuments.net/reader034/viewer/2022043009/5f9c647dca41eb05b020e7a3/html5/thumbnails/14.jpg)
Módulos
y
Componentes
Módulos aislados
Mocking
Objeto Jest
![Page 15: Jest - arquisoft.github.io€¦ · debido a que es más accesible, ya que no se necesita gente experta en ningún framework determinado. Jest Lost tests corren en paralelo La API](https://reader034.vdocuments.net/reader034/viewer/2022043009/5f9c647dca41eb05b020e7a3/html5/thumbnails/15.jpg)
Módulos aislados
Jest tiene la capacidad de simular los módulos que desarrollamos en nuestra aplicación
Esta técnica se denomina Mocking
El objeto Jest está al alcance de todos los archivos de prueba
![Page 16: Jest - arquisoft.github.io€¦ · debido a que es más accesible, ya que no se necesita gente experta en ningún framework determinado. Jest Lost tests corren en paralelo La API](https://reader034.vdocuments.net/reader034/viewer/2022043009/5f9c647dca41eb05b020e7a3/html5/thumbnails/16.jpg)
Objeto Jest
enableAutomock()
disableAutomock()
![Page 17: Jest - arquisoft.github.io€¦ · debido a que es más accesible, ya que no se necesita gente experta en ningún framework determinado. Jest Lost tests corren en paralelo La API](https://reader034.vdocuments.net/reader034/viewer/2022043009/5f9c647dca41eb05b020e7a3/html5/thumbnails/17.jpg)
Objeto Jest
mock(moduleName,factory,options)
genMockFromModule(modulename)
![Page 18: Jest - arquisoft.github.io€¦ · debido a que es más accesible, ya que no se necesita gente experta en ningún framework determinado. Jest Lost tests corren en paralelo La API](https://reader034.vdocuments.net/reader034/viewer/2022043009/5f9c647dca41eb05b020e7a3/html5/thumbnails/18.jpg)
Objeto Jest
doMock(moduleName,factory,options)
unmock(modulename)
dontMock(modulename)
![Page 19: Jest - arquisoft.github.io€¦ · debido a que es más accesible, ya que no se necesita gente experta en ningún framework determinado. Jest Lost tests corren en paralelo La API](https://reader034.vdocuments.net/reader034/viewer/2022043009/5f9c647dca41eb05b020e7a3/html5/thumbnails/19.jpg)
Objeto Jest
requireActual(moduleName)
setMock(modulename,moduleExports)
requireMock(modulename)
![Page 20: Jest - arquisoft.github.io€¦ · debido a que es más accesible, ya que no se necesita gente experta en ningún framework determinado. Jest Lost tests corren en paralelo La API](https://reader034.vdocuments.net/reader034/viewer/2022043009/5f9c647dca41eb05b020e7a3/html5/thumbnails/20.jpg)
Objeto Jest
isolateModules(fn)
resetModules()
![Page 21: Jest - arquisoft.github.io€¦ · debido a que es más accesible, ya que no se necesita gente experta en ningún framework determinado. Jest Lost tests corren en paralelo La API](https://reader034.vdocuments.net/reader034/viewer/2022043009/5f9c647dca41eb05b020e7a3/html5/thumbnails/21.jpg)
Arquitectura que hay detrás de Jesthttps://jestjs.io/docs/en/architecture#__docusaurus
En la página oficial de Jest se puede encontrar un vídeo
detallando suarquitectura, cómo funciona Jest por debajo.
![Page 22: Jest - arquisoft.github.io€¦ · debido a que es más accesible, ya que no se necesita gente experta en ningún framework determinado. Jest Lost tests corren en paralelo La API](https://reader034.vdocuments.net/reader034/viewer/2022043009/5f9c647dca41eb05b020e7a3/html5/thumbnails/22.jpg)
![Page 23: Jest - arquisoft.github.io€¦ · debido a que es más accesible, ya que no se necesita gente experta en ningún framework determinado. Jest Lost tests corren en paralelo La API](https://reader034.vdocuments.net/reader034/viewer/2022043009/5f9c647dca41eb05b020e7a3/html5/thumbnails/23.jpg)
Las diferentes opciones de configuración de Jest
(Jest CLI options) pueden encontrarse en: https://jestjs.io/docs/en/configuration
![Page 24: Jest - arquisoft.github.io€¦ · debido a que es más accesible, ya que no se necesita gente experta en ningún framework determinado. Jest Lost tests corren en paralelo La API](https://reader034.vdocuments.net/reader034/viewer/2022043009/5f9c647dca41eb05b020e7a3/html5/thumbnails/24.jpg)
Y pueden utilizarse añadiendose directamente al
package.json o a un archivo jest.config
Por ejemplo, verbose se utiliza para mostrar información por
consola del estado actual de los test
![Page 25: Jest - arquisoft.github.io€¦ · debido a que es más accesible, ya que no se necesita gente experta en ningún framework determinado. Jest Lost tests corren en paralelo La API](https://reader034.vdocuments.net/reader034/viewer/2022043009/5f9c647dca41eb05b020e7a3/html5/thumbnails/25.jpg)
Detrás de Jest, está Facebookhttps://opensource.facebook.com/
https://github.com/facebook/jest
![Page 26: Jest - arquisoft.github.io€¦ · debido a que es más accesible, ya que no se necesita gente experta en ningún framework determinado. Jest Lost tests corren en paralelo La API](https://reader034.vdocuments.net/reader034/viewer/2022043009/5f9c647dca41eb05b020e7a3/html5/thumbnails/26.jpg)
Arquitectura limpia
Robert C. Martin
Creador de los principios del software limpio
Obras destacadas:
Clean code: A Handbook of Agile Software Craftsmanship
![Page 27: Jest - arquisoft.github.io€¦ · debido a que es más accesible, ya que no se necesita gente experta en ningún framework determinado. Jest Lost tests corren en paralelo La API](https://reader034.vdocuments.net/reader034/viewer/2022043009/5f9c647dca41eb05b020e7a3/html5/thumbnails/27.jpg)
![Page 28: Jest - arquisoft.github.io€¦ · debido a que es más accesible, ya que no se necesita gente experta en ningún framework determinado. Jest Lost tests corren en paralelo La API](https://reader034.vdocuments.net/reader034/viewer/2022043009/5f9c647dca41eb05b020e7a3/html5/thumbnails/28.jpg)
EXOR
![Page 29: Jest - arquisoft.github.io€¦ · debido a que es más accesible, ya que no se necesita gente experta en ningún framework determinado. Jest Lost tests corren en paralelo La API](https://reader034.vdocuments.net/reader034/viewer/2022043009/5f9c647dca41eb05b020e7a3/html5/thumbnails/29.jpg)
Código limpio VS Jest
Código limpio
Mejor mantenimiento de proyectos
a largo plazo
Reducción del coste de
mantenimiento del proyecto,
debido a que es más accesible, ya
que no se necesita gente experta en ningún framework determinado.
Jest
Lost tests corren en paralelo
La API está documentada
Fácil configuración
Control de la cobertura de código
![Page 30: Jest - arquisoft.github.io€¦ · debido a que es más accesible, ya que no se necesita gente experta en ningún framework determinado. Jest Lost tests corren en paralelo La API](https://reader034.vdocuments.net/reader034/viewer/2022043009/5f9c647dca41eb05b020e7a3/html5/thumbnails/30.jpg)
Aún así, Jest tiene sus ventajas...
![Page 31: Jest - arquisoft.github.io€¦ · debido a que es más accesible, ya que no se necesita gente experta en ningún framework determinado. Jest Lost tests corren en paralelo La API](https://reader034.vdocuments.net/reader034/viewer/2022043009/5f9c647dca41eb05b020e7a3/html5/thumbnails/31.jpg)
Jest VS no-framework testing
Jest (cobertura de código) Clean code testing (sencillez)
![Page 32: Jest - arquisoft.github.io€¦ · debido a que es más accesible, ya que no se necesita gente experta en ningún framework determinado. Jest Lost tests corren en paralelo La API](https://reader034.vdocuments.net/reader034/viewer/2022043009/5f9c647dca41eb05b020e7a3/html5/thumbnails/32.jpg)
Jest makes testing delightful.
- Jest Core Team