2016-08-15 2 views
0

Как заглушить метод экземпляра bark следующей фиктивной схемы?Как заглушить методы в модели Mongoose?

var dogSchema = mongoose.Schema({ 
    // ... 
}); 

dogSchema.methods = { 
    bark() { console.log('Woof!') }, 
}; 

Например, если я хочу, чтобы проверить следующую функцию barkOne():

function barkOne() { 
    Dog.findOne().exec().then(dog => dog.bark()); 
} 

Как я смог бы окурок его, чтобы проверить это, как это?

describe('barkOne',() => 
    it('should make all dogs bark',() => { 
    barkOne().then(() => { 
     assert(barkStub.calledOnce); 
    }); 
    }) 
}); 

Спасибо!

ответ

0

Начиная с mongoose 4.4.5, я смог заглушить методы с помощью Model.prototype. например

const stub = sandbox.stub(Dog.prototype, 'bark'); 

Dog.findOne().exec().then(dog => { 
    // dog[0].bark === stub 
}) 
Смежные вопросы