Introducción a la moca

Mocha es un marco de prueba para Javascript que se ejecuta en Node.js. Los marcos facilitan la prueba de conceptos de Javascript asincrónicos en el navegador. Mocha se usa ampliamente para probar códigos Javascript antes de implementarlos en el servidor.

Instalación del módulo:

  1. Instale Nodejs en su sistema ya que mocha lo utiliza.
  2. Ejecute el siguiente comando para instalar el módulo:
    npm install mocha

Ganchos en Mocha: hay seis ganchos utilizados en las pruebas de este marco para configurar o cargar las condiciones previas utilizadas en las pruebas.

  1. eso() 
  2. describir() 
  3. antes de cada uno() 
  4. después de cada()
  5. antes de()
  6. después()
describe("hooks", function() {
  
 before(function() {
   // Runs before all tests in this block
  });
    
 after(function() {
  // Runs after all tests in this block
 });
   
 beforeEach(function() {
  // Runs before each test in this block
 });
   
 afterEach(function() {
  // Runs after each test in this block
 });
   
 // Test cases
});

Estructura moca:

Ejemplo: Cree un directorio de prueba en su proyecto. Dentro del directorio de prueba, cree dos archivos llamados helper.js y create_test.js respectivamente.

Directorio del proyecto: el directorio del proyecto debería verse así:

Directorio de proyectos

Ahora, dentro del archivo package.json, cambie el campo «prueba» a «mocha», ya que el marco de prueba es mocha.

Javascript {
  "name": "Introduction to Mocha",
  "version": "1.0.0",
  "description": "Learn to code",
  "main": "index.js",
  "scripts": {
    "test": "mocha"
  },
  "author": "Yatharth Arora",
  "license": "ISC",
  "dependencies": {
    "mocha": "^8.1.3",
  }
}

El archivo helper.js contiene la función before() que se ejecutará antes de todos los casos de prueba.

Nombre de archivo: ayudante.js

// Using moongoose as a database
const mongoose = require('mongoose'); 
mongoose.Promise = global.Promise;
  
// The before() hook
before( (done) => {
    mongoose.connect("mongodb://localhost/mongotube", 
    { useUnifiedTopology: true, useNewUrlParser: true});
  
    mongoose.connection
    .once('open', () => {
        // console.log('Connected...')
        done();
    })
    .on('error', (error) => {
        console.log("Your error", error);
    });
});

El archivo create_test.js contiene todos los casos de prueba que vamos a verificar usando el marco. Contiene una función describe() que incluye todos los casos de prueba definidos por la función it().

Nombre de archivo: create_test.js

// Student is the database where we will 
// add details and test if details are added
  
const Student = require('../App/student');
const assert = require('assert');
  
describe("Create Records", () => {
       
    // First test case
    it("create a user in db", () => {
  
        // assert(true);
        const geek = new Student({name: "geek"});
          
        // Save the object in database
        geek.save()
        .then( () => {
          // The geek.isNew returns false if
          // object is stored in database
          // The !geek.isNew becomes true and
          // the test passes.
          assert(!geek.isNew)
        })
        .catch( () => {
           console.log("error");
        })
    });
});

Pasos para ejecutar el código:

  1. Navegue al directorio donde se encuentra su archivo de prueba y escriba el siguiente comando:
    npm test
  2. La consola mostrará el mensaje que pasó como primer argumento en cada método it(). Si la prueba falla, se informará del error.

Producción:

Archivo de salida

Necesidad de Mocha Una vez que el código se implementa en el lado del servidor, es muy difícil y costoso realizar cambios. La satisfacción del usuario es muy importante y, por lo tanto, el código debe pasar por pruebas exhaustivas antes de que esté listo para la producción.

Publicación traducida automáticamente

Artículo escrito por yathartharora y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *