Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

142
Visualizações
Mocha + Chai + NodeJS nunca falla mientras debería

Hola, solo trato de hacer una prueba funcional con mocha + chai en nodeJS api y cada vez que intento algo, incluso si no es lo que esperaba de la prueba, la prueba parece pasar.

Aquí está mi código de prueba:

 const server = require("../server"); const chai = require("chai"); const chaiHttp = require("chai-http"); chai.use(chaiHttp); const expect = require("chai").expect; const requester = chai.request(server); describe("test user", function(){ describe("get all", function(){ it("should return all users and 400", function(){ requester.get("/api/users") .then(function(res){ console.log(res.status); expect(res).to.have.status(400); }) .catch(function(err){ throw(err); }) }) }) })

y esto es lo que obtengo:

 > backend@1.0.0 test > mocha "tests/users.test.js" App listening at http://:::4000 test user get all ✔ should return all users and 400 1 passing (13ms) Successfully connected to MongoDB. 200

como espero 400 y obtengo 200, debería fallar, pero no lo es.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

El problema es que está probando una promesa, por lo que su prueba finaliza antes de que se resuelva la promesa (con éxito o error). Para hacer que Mocha espere la promesa, puede hacer una de las siguientes cosas:

  1. Devolver la promesa del mocha it block
 describe("test user", function(){ describe("get all", function(){ it("should return all users and 400", function(){ return requester.get("/api/users") .catch(function(res){ expect(res).to.have.status(400); }) }) }) })
  1. use la función asíncrona y await la promesa, luego realice las expectativas:
 describe("test user", function(){ describe("get all", function(){ it("should return all users and 400", async function(){ const res = await requester.get("/api/users") expect(res).to.have.status(400); }) }) })

Aquí puede omitir la cláusula de catch ya que mocha lo resolverá.

Puede leer más sobre cómo probar cosas asincrónicas en los documentos oficiales de mocha .

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda