Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

225
Vistas
¿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 la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda