Je veux me moquer d'une méthode de classe ES6.Sinon stub indéfini avec les tests node.js et moka
Je module l'importation de modèles:
// test.js
const models = require(path.resolve('./models'));
Dans les modèles folder il y a un index.js et il redirige vers index.js dans le dossier utilisateur tout en appelant models.user:
// models/index.js
models.user = user;
Ensuite, J'ai une classe d'utilisateurs dans index.js: // modèles/utilisateur/index.js
class User extends Model {
// simplified exists - it returns boolean or thows an error
static async exists(username) {
if (username) {
returns true
} else {
throw new Error('bad output');
}
}
}
Je wàn t pour stub exister (nom d'utilisateur) méthode avec stub sinon.
que je fais:
const sinon = require('sinon');
const models = require(path.resolve('./models'));
describe.only('generateTokenBehavior()', function() {
it('should return 200 given valid username and password', function() {
...
const stub = sinon.stub();
stub(models.user.prototype, 'exists').callsFake(true);
...
});
et je reçois une erreur sur la ligne avec talon:
TypeError: Cannot read property 'callsFake' of undefined
Quel est le problème avec ce code? Je faisais des recherches sur ce problème sur des questions de pile similaires, mais je n'ai pas trouvé la réponse.