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.
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:
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