gpt4 book ai didi

javascript - 如何使用 Sinon 监视导入的函数?

转载 作者:行者123 更新时间:2023-11-29 10:31:30 24 4
gpt4 key购买 nike

假设我们要测试一个特定函数是否被另一个使用 Sinon 的函数调用。

fancyModule.js

export const fancyFunc = () => {
console.log('fancyFunc')
}

export default const fancyDefault = () => {
console.log('fancyDefault')
fancyFunc()
}

fancyModule.test.js

import sinon from 'sinon'
import fancyDefault, { fancyFunc } from '../fancyModule'

describe('fancyModule', () => {
it('calls fancyFunc', () => {
const spy = sinon.spy(fancyFunc)
fancyDefault()
expect(spy.called).to.be.true
})
})

当我运行此测试时,实际值始终为 false。此外,原始函数 fancyFunc() 被调用(输出 fancyFunc)而不是被模拟。

最佳答案

您可以更改导入样式,并像这样将您的模块作为对象导入

import sinon from 'sinon'
import * as myModule from '../fancyModule'

describe('fancyModule', () => {
it('calls fancyFunc', () => {
const spy = sinon.spy(myModule, 'fancyFunc');
myModule.fancyDefault()
expect(spy.called).to.be.true
})
})

关于javascript - 如何使用 Sinon 监视导入的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45110688/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com