Moca en TypeScript

Rana Hasnain Khan 15 febrero 2024
Moca en TypeScript

Presentaremos Mocha y cómo instalarlo y ejecutar pruebas con él en TypeScript.

Moca en TypeScript

Cuando trabajamos en una aplicación comercial o una aplicación que usarán millones de usuarios, debemos asegurarnos de que nuestra aplicación funcione perfectamente sin errores. Para este propósito, usamos Mocha, un marco de prueba de JavaScript.

Podemos usar Mocha para ejecutar pruebas asincrónicas e informes de cobertura, y podemos usarlo para probar cualquiera de las bibliotecas de aserciones.

En este tutorial, presentaremos cómo instalar Mocha en TypeScript. Como sabemos, es un marco de JavaScript, y configurar Mocha con TypeScript no es una tarea fácil y requerirá tiempo y esfuerzo.

Está disponible un framework TypeScript que maneja todas las tareas relacionadas con los cambios y actualizaciones de Mocha y ts-node y nos permite preocuparnos solo de escribir pruebas. La biblioteca ts-mocha es una biblioteca útil que podemos usar para implementar y usar Mocha fácilmente.

Para instalarlo en nuestro proyecto, podemos ejecutar el siguiente comando.

npm i ts-mocha

También es importante instalar los tipos mocha y expect en nuestro proyecto ejecutando el siguiente comando.

npm i @types/mocha @types/expect

Al agregar pruebas y ejecutarlas, la mayoría de nosotros recibimos errores relacionados con mecanografiado-requerir. Podemos solucionar esto fácilmente instalando la dependencia de ts-node usando el siguiente comando.

npm i ts-node

Este comando instalará la biblioteca requerida, y podemos crear y ejecutar fácilmente las pruebas usando mocha. Mocha se usa principalmente con otro marco conocido como chai.

Es una biblioteca de aserciones BDD/TDD para Node.js. Esta biblioteca se combina con cualquier marco de prueba y ayuda a escribir las pruebas.

Ahora, veamos un ejemplo en el que crearemos una prueba Mocha de ejemplo y comprobaremos cómo podemos crearlos y usarlos en nuestras aplicaciones. En primer lugar, necesitamos instalar nuestro nuevo proyecto.

Para ello, crearemos un nuevo directorio con el nombre mocha e inicializaremos nuestro proyecto ejecutando el siguiente comando en nuestra terminal.

npm init

Nos pedirá opciones para nuestro proyecto y creará un archivo package.json. Una vez que hayamos completado este paso, ahora instalaremos Express con dotenv usando el siguiente comando.

npm i --save express dotenv

Después de instalar Express, instalaremos mocha, chai, typescript, nodemon, supertest, ts-node y tsconfig-paths en nuestro proyecto. Como se mencionó anteriormente, mocha y chai se usan juntos para escribir pruebas.

Instalaremos mecanografiado porque crearemos pruebas en mecanografiado.

Usaremos nodemon porque nos permite actualizar el proyecto cada vez que hacemos cambios en nuestros archivos de proyecto. Instalaremos supertest porque nos permite probar puntos finales en nuestra prueba Mocha.

Esto nos ayuda a probar las API. Instalaremos ts-node, que nos permitirá usar TypeScript en nuestro proyecto de nodo, y necesitaremos tsconfig-paths, que nos permitirá usar importaciones absolutas en todo el proyecto de nodo en nuestras pruebas de Mocha.

Podemos ejecutar el siguiente comando para instalarlos, como se muestra a continuación.

npm i -D mocha chai typescript nodemon supertest ts-node tsconfig-paths

Ahora, instalaremos los tipos de estas dependencias porque TypeScript necesita conocer los tipos. Podemos instalarlos fácilmente usando el siguiente comando.

npm i -D @types/chai @types/mocha @types/node @types/supertest

Agregaremos los comandos build y dev en nuestra sección scripts package.json, como se muestra a continuación.

"scripts": {
    "build": "tsc -p .",
    "dev": "NODE_ENV=dev nodemon -r tsconfig-paths/register src/app.ts",
    "test": "echo \"Error: no test specified\" && exit 1"
  },

También necesitaremos inicializar la configuración de TypeScript en nuestro proyecto. Podemos hacerlo fácilmente usando el siguiente comando.

tsc --init

Este comando creará un nuevo archivo llamado tsconfig.json que tendrá todas las configuraciones de TypeScript. En este archivo, necesitamos hacer un par de cambios.

Primero, necesitamos cambiar nuestro directorio de salida para que cuando se compile TypeScript, pueda generar un montón de JavaScript que se pueda usar en el navegador, y lo colocaremos dentro de la carpeta dist, y algunos otros cambios, como mostrado a continuación.

"rootDir": "./src",
"moduleResolution": "node",
"baseUrl": "./src",

Ahora, configuraremos o agregaremos el comando test en el archivo package.json, como se muestra a continuación.

"test": "NODE_ENV=test mocha --check-leaks -r tsconfig-paths/register -r ts-node/register \"test/**/*.spec.ts\""

Crearemos un nuevo directorio para las pruebas y agregaremos el archivo index.specs.ts a nuestro directorio de pruebas. Crearemos otro directorio dentro de nuestro directorio de prueba con el nombre del servidor que contiene un archivo server-runs.specs.ts, como se muestra a continuación.

estructura de carpetas para probar con mocha en mecanografiado

Vamos a crear algunas pruebas de muestra en ambos archivos. La prueba en index.specs.ts se muestra a continuación.

describe('test', function(){
    it("testing", function(){
        console.log('Looks fine')
    });
})

Vamos a crear la prueba en server-runs.specs.ts, como se muestra a continuación.

describe('server checking', function(){
    it("server is created without any error", function(){
        console.log('Looks fine')
    });
})

Ejecutemos las pruebas y verifiquemos cómo funcionan con el siguiente comando.

npm test

Producción:

pruebas de mocha comprobando en mecanografiado

Rana Hasnain Khan avatar Rana Hasnain Khan avatar

Rana is a computer science graduate passionate about helping people to build and diagnose scalable web application problems and problems developers face across the full-stack.

LinkedIn