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

232
Visualizações
¿Cómo uso el método calledOnceWithExactly en un stub?

Estoy probando un módulo que importa otra función como dependencia. En la prueba unitaria, he usado el paquete Sinon para eliminar esa dependencia. Ahora estoy usando el método calledOnceWithExactly de Sinon para verificar que esta dependencia se llame exactamente una vez, con un parámetro específico que se le pasa. Parece que mi llamada a calledOnceWithExactly("items") debería devolver verdadero, pero devuelve falso; parece que Sinon cree que se llamó a la dependencia sin pasar ningún parámetro. ¿Alguna idea de por qué? Mi código está abajo.

Más información

  • En el archivo de prueba, el valor de createModelStub. createModelStub.calledOnce es 1, lo que confirma que la función se llama exactamente una vez.
  • Si cambio calledOnceWithExactly("items") a calledOnceWithExactly() , entonces eso devuelve verdadero. Como si Sinon pensara que la función fue llamada sin parámetros.
  • He hecho esto con éxito en el pasado, en otro proyecto, usando exactamente el mismo enfoque. Pero eso fue quizás hace unos 6-12 meses, así que tal vez las cosas cambiaron.
  • Eché un vistazo a la documentación de Sinon, pero no pude ver nada importante. Gracias por adelantado.

Mi código

Archivo de prueba: cliente/prueba/unidad-pruebas.js

 import test from "tape"; // assign the tape library to the variable "test" import sinon from "sinon"; import { saveToDb } from "../src/module-save-to-db.js"; import createModel from "../../server/models/createModel.js"; test("Test of save to database.", async function (t) { const createModelStub = sinon.stub(createModel, "createModel").returns(555); await saveToDb(); console.log(`createModelStub.calledOnce`);// Prints 1. console.log(createModelStub.calledOnceWithExactly("items"));// Prints false, even though createModel is indeed called once with "items" as a parameter. t.end(); });

Módulo bajo prueba: client/src/module-save-to-db.js

 import { createModel } from "../../server/models/createModel.js"; export function saveToDb() { return createModel("items").then((myModel) => {// createModel called and passed "items" as a parameter. const model = new myModel({ number: 555, all_items: "value1" }); return true; }); }

El módulo de dependencia está en: server/models/createModel.js

about 4 years ago · Juan Pablo Isaza
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