如何使用 Sinon 处理 NodeJS 的内置函数?

How to address NodeJS's built-in functions with Sinon?

使用 Sinon 存根,我已经使用传统的存根语法成功地存根了项目中的函数:

const permissionsStub = sinon.stub(invitation, 'update')
sinon.assert.calledOnce(permissionsStub)

现在我正在尝试 Stub NodeJS 的内置函数(findIndex、indexOf 等),但没有成功,因为它应该通过Sinon 的 stub() 函数调用的第一个参数,作为 NodeJS 的核心函数,需要传递什么?

我试过创建一个空存根然后将其直接分配给代码中的函数,但我认为有更简单的方法可以尝试 spy/stub/mock 内置 NodeJS 函数。

我通过尝试传递一些可能正确定位它的参数得到了这个错误,因为它没有成功安装:

TypeError: Cannot read property 'returns' of undefined

如何使用 Chai 和 Sinon 以更简单的方式定位这些函数?

所以最终我使用以下代码让它工作(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)