Mes codes:qu'est ce que `this` dans sinon.test() dans les tests de moka?
it('should', sinon.test(function() {
console.log(this); // what `this` refer here?
...
}));
Dans le code ci-dessus, ce this
font référence dans la fonction sinon.test()
?
J'ai essayé de vous connecter, mais a obtenu l'erreur:
TypeError: Converting circular structure to JSON
Version Sinon: 1.17.6
Tous les commentaires bienvenus. Merci.
MISE À JOUR
après avoir lu la réponse ci-dessous, je suis encore confus. Pourquoi les deux codes suivants fonctionnent-ils lorsque this.myOnject.log
a été écrasé une seule fois?
it('should', sinon.test(function() {
const stubLog = this.stub(this.myObject.log, 'warn');
// ...
this.myObject.process();
// expect codes...
}));
it('should', sinon.test(function() {
const stubLog = sinon.stub(this.myObject.log, 'warn');
// ...
this.myObject.process();
// expect codes...
}));
MISE À JOUR
Si downvoted, s'il vous plaît laisser des commentaires pour me faire savoir pourquoi vous downvoted. Je suis très confus par la question que j'ai posté. Mais je suis plus confus pourquoi tant de gens ont downvoted, mais n'a pas laissé de commentaires utiles.
Merci. Quelles sont les différences entre 'sinon.stub()' et 'this.stub()' dans 'sinon.test()'? – BAE
La différence est que 'this.stub()' dans 'sinon.test()' utilise le sandbox. Si vous appelez simplement 'sinon.stub()' vous ne bénéficiez pas de la sanbox et vous devez effectuer vous-même le nettoyage nécessaire. – Louis