使用Sinon存根,我已经使用传统的存根语法成功在项目中添加了函数:
const permissionsStub = sinon.stub(invitation, 'update')
sinon.assert.calledOnce(permissionsStub)
现在,我正在尝试对NodeJS的内置函数( findIndex,indexOf等。)进行存根测试,但没有成功,因为应该将其与Sinon存根的第一个参数一起传递()函数调用,这是NodeJS的核心函数,需要传递什么?
我曾尝试创建一个空的存根,然后将其直接分配给代码中的函数,但是我认为有一种更简单的方法可以尝试监视/ stub / mock内置NodeJS函数。
由于尝试传递一些可能正确地针对它的参数而导致此错误,因为它无法成功挂载:
TypeError: Cannot read property 'returns' of undefined
如何使用Chai和Sinon以更简单的方式定位这些功能?
答案 0 :(得分:0)
所以最终我使用以下代码使它可以工作(rewire
用于获取文件的内部未导出函数):
const permissionIndex = invitation.__get__('permissionIndex')
permissionsStub.findIndex = () => {
return { id: 1 }
}
expect(permissionIndex(1, permissionsStub)).to.be.an('object')
expect(permissionIndex(1, permissionsStub)).to.have.deep.property('id', 1)