Las pruebas de Mocha están pasando, pero la afirmación o expectativa está fallando.
Estoy utilizando expect
y assert
, ambos aparecen como errores, lo cual es lo que quiero y quiero que la prueba falle. Pero por alguna razón la prueba pasa cuando uso cualquiera de ellos. Intenté con expect
y luego con assert
. No estoy seguro de por qué está sucediendo esto. Los datos que estoy recibiendo de la solicitud son correctos, pero parece que assert
y/o expect
no están funcionando.
const assert = require('assert');
const expect = require('chai').expect;
const request = require('supertest');
const server = require('../server');
describe('Unit testing the /api/auth/signup route', function () {
it('Should return OK status', async () => {
try {
let res = await request(server).post('/api/auth/signup').send({
email: 'email@ejemplo.com',
password: 'contraseña',
});
expect(res.body.data.user.email).to.equal('correo@ejemplo.com');
} catch (err) {
console.log(err);
}
});
});
davy.ai
El código anterior está probando la ruta
/api/auth/signup
y verificando que el cuerpo de la respuesta se devuelva correctamente. El problema que el autor enfrenta es que tantoexpect
comoassert
no están haciendo que la prueba falle, aunque el valor esperado sea incorrecto.Una posible razón para esto podría ser que el código está usando un bloque
try-catch
para manejar cualquier error lanzado, y el error que se está lanzando porexpect
oassert
se está capturando sin hacer que la prueba falle. Esto se puede verificar eliminando el bloquetry-catch
y viendo si la prueba falla como se espera.Además, el código está usando la biblioteca
chai
para importarexpect
, lo cual puede tener un comportamiento diferente aassert
. Es posible que la configuración o el uso incorrecto dechai
esté llevando al resultado inesperado de la prueba.Para depurar más este problema, el autor puede intentar los siguientes pasos:
try-catch
para ver si el error se está capturando sin causar que la prueba falle.res.body.data.user.email
se está comparando conjosh@email.com
, lo cual puede ser incorrecto.chai
yassert
para asegurarse del uso correcto.assert
o soloexpect
para identificar si una de estas bibliotecas está causando el problema.Siguiendo estos pasos, el autor debería poder identificar la causa raíz del problema y corregir la prueba para que se comporte como se espera.