Sinon: El método de apéndice en el mismo archivo no funciona

Creado en 5 oct. 2016  ·  3Comentarios  ·  Fuente: sinonjs/sinon

Estoy tratando de probar unitariamente una función en un archivo mientras aplico otra función en el MISMO archivo, pero el simulacro no se está aplicando y se está llamando al método real. He aquí un ejemplo:

// file: 'foo.js'

export function a() {
   // .....
}

export function b() { 
   let stuff = a(); // call a
   // ...do stuff
}

Y mi prueba:

import * as actions from 'foo';

const aStub = sinon.stub(actions, 'a').returns('mocked return');
actions.b(); // b() is executed, which calls a() instead of the expected aStub()

Todos 3 comentarios

Piense en cómo se vería esto en el ES5 estándar. Cada función se exporta con un nombre determinado en el objeto de exportación, pero también se puede hacer referencia internamente mediante el nombre de la función. Hablamos de dos referencias distintas. Al apuntar, está cambiando la referencia externa. La referencia interna se mantiene igual. No puede cambiarlo, excepto si crea un inyector de dependencia explícito (como una función de establecimiento para uso interno). Esto no es un error, sino una característica de JavaScript.

¿Hay alguna solución al respecto? Es bastante común tener este tipo de problema al probar un archivo nodejs.

Esto está cubierto en nuestra documentación, en la sección de cómo:
http://sinonjs.org/how-to/link-seams-commonjs/

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

Temas relacionados

optimatex picture optimatex  ·  4Comentarios

tinganho picture tinganho  ·  3Comentarios

zimtsui picture zimtsui  ·  3Comentarios

akdor1154 picture akdor1154  ·  4Comentarios

fearphage picture fearphage  ·  3Comentarios