Sinon: El método de restauración predeterminado de sandbox no restaura stubs / espías

Creado en 2 may. 2018  ·  4Comentarios  ·  Fuente: sinonjs/sinon

Cuando se usa cualquier método de sandbox en el sandbox predeterminado, restore() no restaura simulacros o espías correctamente. Un caso de reproducción mínima en Sinon v5.0.2:

const sinon = require('sinon');
const myApi = {
  someMethod() {
    console.log('test method!');
  }
};

sinon.stub(myApi, 'someMethod');
sinon.restore();
sinon.stub(myApi, 'someMethod');
// TypeError: Attempted to wrap someMethod which is already wrapped

Parece que en la llamada a extend en lib/sinon.js , la ONU-sandboxed stub/spy/etc. exportaciones de apiMethods terminan sombreando los métodos de recinto de seguridad, y así restore() no hace nada. Los documentos y la fuente de la lib/sinon.js parecen sugerir que este es el uso previsto.

Solo probé stub y spy , pero esperaría que cualquier otro método sombreado tampoco funcione como se esperaba.

Ejecuté estas pruebas en Node v8.9.4 y Chrome 66.0.3359.117 a través de Karma / Chromedriver, aunque este problema parece no estar relacionado con el entorno.

Comentario más útil

Con buenos informes de errores, la mayoría de los errores son fáciles de eliminar.

Todos 4 comentarios

Gracias por su informe de errores detallado 👍

Esto se ha solucionado en [email protected]

¡Gracias por abordar esto tan rápidamente! Muy apreciado :)

Con buenos informes de errores, la mayoría de los errores son fáciles de eliminar.

¿Fue útil esta página
0 / 5 - 0 calificaciones