Javascript 如何使附加到全局的属性与sinon正确连接?
我有一个Javascript 如何使附加到全局的属性与sinon正确连接?,javascript,mocha.js,sequelize.js,sinon,stub,Javascript,Mocha.js,Sequelize.js,Sinon,Stub,我有一个helper.js,在测试之前加载: before(async function() { this.timeout(30000) global.db = require(`${process.cwd()}/models`)() ... 那么在我的测试中,我有: describe.only('Phone Library', () => { let updateCallSpy beforeEach(() => { sino
helper.js
,在测试之前加载:
before(async function() {
this.timeout(30000)
global.db = require(`${process.cwd()}/models`)()
...
那么在我的测试中,我有:
describe.only('Phone Library', () => {
let updateCallSpy
beforeEach(() => {
sinon.stub(twilioClient.calls, 'create').resolves({})
updateCallSpy = sinon.stub(global.db.models.Call, 'update').resolves(true)
// sinon.stub(global.db.models.Conversation, 'update').resolves({})
})
twilioClient.calls.create
存根正确。但是global.db.models.Call.update
没有
在我的实际代码中,我使用它的方式如下:
await global.db.models.Call.update({ status: newCallStatus }, { where: { id: foundConversation.Call.id } })
当我console.log(global.db.models.Call)
时,它只输出Call
。但是,.update
函数就在那里,它完成了它应该做的事情(更新的Sequelize模型)
我相信这是非常明显的,所以任何指点都将不胜感激。谢谢。sequelize模型方法由sequelize核心定义为原型 以下几点应该有效
updateCallSpy = sinon.stub(global.db.models.Call.prototype, 'update').resolves(true)
您还可以创建存根实例:
updateCallStubInstance = sinon.createStubInstance(global.db.models.Call)
我尝试了
updateCallSpy=sinon.stub(global.db.models.Call.prototype,'update')。解析(true)
。还是没有骰子!您使用的是哪个sequelize版本?