2016-08-15 6 views
0

インスタンスメソッドbarkを次の架空のスキーマにスタブする方法はありますか?例えばマングースモデルでメソッドをスタブする方法は?

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

マングース4.4.5では、Model.prototypeのメソッドをスタブすることができました。例えば

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

Dog.findOne().exec().then(dog => { 
    // dog[0].bark === stub 
}) 
関連する問題