我有这样的事情(取自http://thecodebarbarian.com/mongoose-error-handling.html):
var schema = new Schema({
name: {
type: String,
unique: true
}
});
schema.post('save', function(error, doc, next) {
if (error.name === 'MongoError' && error.code === 11000) {
next(new Error('There was a duplicate key error'));
} else {
next(error);
}
});
var Person = mongoose.model('Person', schema);
现在我想在使用过程中使用sinon stub进行模拟:
const person = new Person({ name: 'Val' });
person.save(); // <--- i want a mocked error to be passed to the schema.post middleware
我该怎么做?
一般资料: 我得到了一些课程,MyDao,他有一个“拯救”的课程。方法,返回person.save();
所以我试过了:
sinon.stub(MyDao.prototype, 'save', () => {
throw new Error({name: 'MongoError', code: 11000}))};
但它不起作用......
答案 0 :(得分:0)
你需要存根对象的实例而不是类。
const person = new Person({ name: 'Val' });
sinon.stub(person, 'save').throws({name: 'MongoError', code: 11000});
person.save();