qui suit:Comment puis-je remplacer une fonction anonyme dans Sinon?
const sinon = require('sinon')
const a =() => { return 1 }
sinon.stub(a)
lancers francs TypeError: Attempted to wrap undefined property undefined as function
.
stub
fonctionne s'il y a un objet, donc j'ai essayé d'utiliser this
. Dans Node.js REPL (v6.11):
> const a =() => { return 1 }
undefined
> this.a
[Function: a]
Cependant, dans mon spec mocha, il échoue:
const a =() => { return 1 }
console.log(a)
// => [Function: a]
console.log(this.a)
// => undefined
Qu'est-ce que je manque? Comment puis-je faire ce travail?
BTW: Je suis conscient que je peux stub
une méthode d'un objet, comme ceci: const stub = sinon.stub(object, 'a')
, mais ce n'est pas ce que je suis après ici avec cette question.
double possible de [TypeError: Tentative d'envelopper propriété non définie en fonction] (https://stackoverflow.com/ questions/42271151/typeerror-tenté-à-wrap-undefined-propriété-comme-fonction) –
Pas vraiment un doublon. Ce n'est pas sur les setters/getters. –
Vous ne pouvez pas le faire fonctionner comme ça. Pour le stubbing, Sinon demande un objet racine car il doit remplacer la référence de la fonction que vous souhaitez placer dans cet objet racine. Le 'this' dans le REPL ne fonctionne que parce que le REPL est implémenté. – robertklep