我正在开玩笑地从依赖模块中模拟常量:
const MOCK_CONTEXT = {
eventName: 'eventName'
}
jest.mock('@actions/github/lib/github', function () {
return {
context: MOCK_CONTEXT
}
})
但是我得到一个错误
ReferenceError:未定义CONTEXT_MOCK
这是什么问题,怎么会发生?
如果我不引用已经存在的常量,则一切正常。 此代码也可以正常工作:
const MOCK_INPUT = {
GITHUB_TOKEN: 'GITHUB_TOKEN'
}
jest.mock('../src/action-inputs', () => ({ getInputs: () => MOCK_INPUT }))
有什么解决方法可以实现我想要的吗?
答案 0 :(得分:0)
jest.mock将工厂函数作为第二个参数。这是一个高阶函数,应该返回一个函数,该函数返回一个模拟值。
因此您的代码应如下所示:
jest.mock('@actions/github/lib/github', function () {
return () => ({
context: MOCK_CONTEXT
});
})
测试文件中的导入路径应完全为@actions/github/lib/github
。