Testing JavaScript y DOM con Mocha
Mocking y stubbing con Sinon en Mocha
Cuando escribimos pruebas unitarias, es importante aislar el código que estamos probando para asegurarnos de que la prueba no depende de partes externas o de comportamientos impredecibles.
Aquí es donde entra en juego Sinon.js
, una librería poderosa para el "mocking", "stubbing" y "spying" en pruebas de JavaScript. En este capítulo, aprenderemos cómo usar Sinon con Mocha para mejorar nuestras pruebas.
Instalación de Sinon
Primero, necesitamos instalar Sinon. Puedes hacerlo ejecutando el siguiente comando en la raíz de tu proyecto:
sh
Stubbing con Sinon
El "stubbing" nos permite reemplazar una función o método con una versión controlada y predecible. Esto es útil cuando queremos evitar efectos secundarios o garantizar que el código bajo prueba se comporte de una manera específica.
Ejemplo de Stubbing de Función
Consideremos el siguiente código en usuario.js
:
javascript
Queremos probar una función que usa fetchUsuario
, pero no queremos hacer llamadas reales a la API. Podremos stubbar fetchUsuario
usando Sinon.
Escribir la Prueba con Stubbing
javascript
Stubbing en Funciones Asíncronas
Para funciones asíncronas, podemos devolver una promesa resuelta:
javascript
javascript
Mocking con Sinon
El "mocking" simula un objeto completo y permite establecer expectativas sobre cómo debería usarse. Los "mocks" son útiles para verificar interacciones específicas.
Ejemplo de Mocking en Sinon
javascript
Escribir la Prueba con Mocking
javascript
Usando Spies con Sinon
Los "spies" permiten observar el comportamiento de funciones sin reemplazarlas. Esto es útil para verificar si una función ha sido llamada y con qué argumentos.
Ejemplo de Spying
javascript
Conclusión
Sinon.js
proporciona herramientas poderosas para stubbing, mocking y spying, permitiéndonos escribir pruebas unitarias más robustas y aisladas. La combinación de Sinon con Mocha y Chai nos permite cubrir un amplio rango de casos de pruebas y verificar todas las interacciones esperadas en nuestro código.
En el siguiente capítulo, veremos cómo realizar pruebas de interacciones del usuario con Mocha, implementando muchos de los conceptos que aprendimos aquí.
- Introducción al Testing en JavaScript con Mocha
- Fundamentos del DOM
- Instalación y configuración de Mocha
- Escribir las primeras pruebas unitarias con Mocha
- Pruebas con Mocha y Chai
- Pruebas de componentes DOM con Mocha
- Pruebas de eventos del DOM con Mocha
- Mocking y stubbing con Sinon en Mocha
- Pruebas de interacciones del usuario con Mocha
- Pruebas de accesibilidad con Mocha
- Pruebas asíncronas con Mocha
- Organización y estructura de tests en Mocha
- Automatización de pruebas con CI/CD usando Mocha
- Mejores prácticas para testing con Mocha
- Conclusiones y próximos pasos en el testing con Mocha