Les modules que je veux tester et/ou simuler utilisent des variables globales.
Par exemple, le code source du module fait référence à une variable session
, qui n'est définie nulle part mais qui est disponible au moment de l'exécution.
Considérez le module globals.js
:
let globals = {
contextName: "DATA_PIPELINE",
reportContext: "report",
session: session
};
module.exports = globals;
session
n'est pas défini dans ce fichier mais disponible au moment de l'exécution. C'est une variable globale de l'environnement (pas sous mon contrôle).
Je remarque qu'avec de faux minuteurs, vous avez réussi à remplacer l'implémentation de fonctions globales telles que setTimeout. Comment pourrions-nous appliquer cela à n'importe quelle fonction/objet global ?
Peut-être que sinon.replace(object, prop, replacement)
est ce que vous cherchez ?
https://sinonjs.org/releases/v7.2.4/sandbox/#sandboxreplaceobject -property-replacement
Nous essayons de garder la liste des problèmes GitHub bien rangée et concentrée sur les bogues et les discussions sur les fonctionnalités. Ce ticket ressemble à une question d'utilisation ; veuillez le publier sur StackOverflow et le taguer avec sinon
, afin que la plus grande communauté puisse répondre à vos questions.
Dans Node.js, vous pouvez faire quelque chose comme :
global.session = sinon.stub();
// Proceed to import the modules that use the session global and run the tests