Skip to content

Repository files navigation

Ta-Te-Ti: Un ejemplo de TDD en Express con Mocha

Este repositorio contiene un ejemplo paso a paso para el desarrollo de un servidor de backend basado en NodeJS y Express que sirve un juego de TaTeTi.

Preparación del Entorno

  1. Instalar el generador de proyectos de express (referencia)
npm install express-generator -g
  1. Generar el proyecto express
express --no-view  --git tateti
  1. Instalar las herramientas de testing
npm install --save-dev mocha chai nyc chai-http
  1. Modificar el archivo package.json para agregar el comando de pruebas
  "scripts": {
    "start": "node ./bin/www",
    "test": "mocha --reporter spec",
    "coverage": "nyc --reporter=html mocha"
  },
  1. Instalar las herramientas para las pruebas de sistema al backend
npm install --save-dev @cucumber/cucumber pactum
  1. Modificar el archivo package.json para agregar el comando de pruebas de backend
  "scripts": {
    "start": "node ./bin/www",
    "test": "mocha --reporter spec",
    "test-backend": "cucumber-js",
    "coverage": "nyc --reporter=html mocha"
  },
  1. Instalar las herramientas para las pruebas de sistema de integración
npm install --save-dev selenium-webdriver
  1. Cambiar el nombre de la carpeta features/support por features/backend

  2. Crear el archivo de configuración cucumber.json para definir un nuevo perfil

{
   "default": {
      "import": ["features/integration/*.js"]
   },
   "backend": {
      "import": ["features/backend/*.js"]
   }
}
  1. Modificar el archivo package.json para agregar el comando de pruebas de integración y corregir el comando para las pruebas de backend
  "scripts": {
    "start": "node ./bin/www",
    "test": "mocha --reporter spec",
    "test-backend": "cucumber-js -p backend",
    "integration": "cucumber-js",
    "coverage": "nyc --reporter=html mocha"
  },
  1. Crear la carpeta features/integration para ubicar el archivo con la las definiciones de los pasos y un archivo adicional de soporte que instancia el navegador antes de cada prueba.

Ejecución de las pruebas

  1. Para ejecutar las pruebas unitarias con mocha

    npm test
  2. Para generar el informe de cobertura de las pruebas unitarias

    npm run coverage
  3. Para ejecutar las pruebas de sistema del backend

    1. En una consola iniciar el servidor con el comando

      npm start
    2. En una segunda consola ejecutar las pruebas con el comando

      npm run test-backend
  4. Para ejecutar las pruebas de sistema de integración

    1. En una consola iniciar el servidor con el comando

      npm start
    2. En una segunda consola ejecutar las pruebas con el comando

      npm run integration

Ejecucion de los servidores

  1. Luego de clonar el repositorio ejecutar para inicializar el frontend:

    cd client
    npm install
    npm start
    
  2. En otra terminal ejecutar para inicializar el backend:

    npm install
    npm start
    

About

Ejemplo de Test Driven Development (TDD) con Mocha y Express

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages