es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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);
        }
    });
});
Tags:  , ,

Answer

  1. Avatar for 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 tanto expect como assert 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 por expect o assert se está capturando sin hacer que la prueba falle. Esto se puede verificar eliminando el bloque try-catch y viendo si la prueba falla como se espera.

    Además, el código está usando la biblioteca chai para importar expect, lo cual puede tener un comportamiento diferente a assert. Es posible que la configuración o el uso incorrecto de chai esté llevando al resultado inesperado de la prueba.

    Para depurar más este problema, el autor puede intentar los siguientes pasos:

    • Eliminar el bloque try-catch para ver si el error se está capturando sin causar que la prueba falle.
    • Verificar que el valor que se está comparando con el valor esperado sea correcto. En la implementación actual, res.body.data.user.email se está comparando con josh@email.com, lo cual puede ser incorrecto.
    • Consultar la documentación de chai y assert para asegurarse del uso correcto.
    • Intentar usar solo assert o solo expect 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.

Comments are closed.