Prueba de funciones y métodos con Chai

 Probando funciones para lanzar las excepciones correctas

Para probar las excepciones, podemos usar la throw aserción proporcionada por Chai. Esta afirmación nos permite especificar el tipo de excepción que debe lanzarse y cualquier detalle adicional que queramos validar. Al incluir esta afirmación en nuestros casos de prueba, podemos asegurarnos de que nuestras funciones se comporten como se espera y manejen las condiciones de error de manera adecuada.

Consideremos un ejemplo donde tenemos una función que divide dos números. Queremos asegurarnos de que la función arroje una excepción al dividir por cero. Podemos escribir un caso de prueba usando la afirmación Chai de throw para verificar si la función arroja correctamente a DivideByZeroError cuando se divide por cero.

const { expect } = require('chai');  
  
function divide(a, b) {  
  if(b === 0) {  
    throw new Error('DivideByZeroError');  
  }  
  return a / b;  
}  
  
describe('divide',() => {  
  it('should throw DivideByZeroError when dividing by zero',() => {  
    expect(() => divide(10, 0)).to.throw('DivideByZeroError');  
  });  
  
  it('should return the correct result when dividing two numbers',() => {  
    expect(divide(10, 5)).to.equal(2);  
  });  
});  

En el ejemplo anterior, usamos la to.throw afirmación para verificar que la divide función arroja un DivideByZeroError cuando se divide por cero. La aserción está envuelta en una función para que pueda detectar la excepción y realizar las comprobaciones necesarias.

Al incluir pruebas para el lanzamiento correcto de excepciones, podemos asegurarnos de que nuestras funciones manejen las condiciones de error de manera adecuada y brinden comentarios significativos cuando ocurran situaciones inesperadas. Esto ayuda a mejorar la calidad general y la confiabilidad de nuestro código.

En conclusión, probar funciones que lanzan excepciones es un aspecto importante de las pruebas de software. Con la afirmación Chai de throw, podemos verificar fácilmente que nuestras funciones lanzan las excepciones esperadas cuando es necesario. Al incorporar estas pruebas en nuestra estrategia de prueba, podemos mejorar la solidez de nuestras aplicaciones y brindar una mejor experiencia de usuario.

En el tercer artículo de la serie "Node.js, Mocha, y Chai ", exploraremos cómo probar funciones y métodos usando Chai. Chai es una poderosa biblioteca de aserciones para probar valores y resultados en JavaScript el código.

 

Probar métodos de objetos y sus comportamientos.

Para verificar los métodos de un objeto, podemos usar aserciones proporcionadas por marcos de prueba como Mocha y Chai. Estas afirmaciones nos permiten hacer afirmaciones sobre las propiedades y el comportamiento de los objetos.

Consideremos un ejemplo en el que tenemos un objeto llamado calculator con métodos de suma, resta, multiplicación y división. Queremos asegurarnos de que estos métodos devuelvan los resultados correctos. Podemos escribir casos de prueba utilizando Chai las afirmaciones de para verificar el comportamiento de estos métodos.

const { expect } = require('chai');  
  
const calculator = {  
  add:(a, b) => a + b,  
  subtract:(a, b) => a- b,  
  multiply:(a, b) => a * b,  
  divide:(a, b) => a / b,  
};  
  
describe('calculator',() => {  
  it('should return the correct sum when adding two numbers',() => {  
    expect(calculator.add(5, 3)).to.equal(8);  
  });  
  
  it('should return the correct difference when subtracting two numbers',() => {  
    expect(calculator.subtract(5, 3)).to.equal(2);  
  });  
  
  it('should return the correct product when multiplying two numbers',() => {  
    expect(calculator.multiply(5, 3)).to.equal(15);  
  });  
  
  it('should return the correct quotient when dividing two numbers',() => {  
    expect(calculator.divide(6, 3)).to.equal(2);  
  });  
});  

En el ejemplo anterior, usamos la afirmación Chai de expect para verificar que los métodos del calculator objeto devuelvan los resultados esperados. Cada caso de prueba se enfoca en un método específico y verifica si devuelve la salida correcta para una entrada dada.

Al ejecutar estos casos de prueba, podemos asegurarnos de que los métodos del calculator objeto se comporten como se espera y brinden resultados precisos.

Además de verificar los valores de retorno de los métodos, también podemos usar aserciones para verificar otras propiedades y el comportamiento de los objetos. Chai proporciona una amplia gama de aserciones que nos permiten hacer varios tipos de aserciones sobre objetos, como verificar valores de propiedad, verificar invocaciones de métodos y más.

Al probar exhaustivamente los métodos de un objeto, podemos garantizar su corrección y confiabilidad, lo que contribuye a la calidad general de nuestra base de código.