gpt4 book ai didi

javascript - 使用 Jest 和 Create React App 模拟全局变量时出现未定义错误

转载 作者:行者123 更新时间:2023-12-05 08:05:03 26 4
gpt4 key购买 nike

我是 JS 单元测试的新手,如果我遗漏了一些明显的东西,我深表歉意。

我需要为某些测试模拟 navigator.mediaDevices.getUserMedia 方法,因此在 setupTests.js 中定义了以下内容:

const mockMedia = {
getUserMedia: jest.fn().mockImplementation(() =>
Promise.resolve(
"stream"
))
}
global.navigator.mediaDevices = mockMedia

在同一文件中测试时,这按预期工作:

navigator.mediaDevices.getUserMedia({video:true})
.then((stream => console.log(stream)))

但是在我的组件中进行测试时,我得到 TypeError: Cannot read property 'then' of undefined 使用相同的代码。

如果我不尝试调用它似乎存在的模拟函数:

console.log(navigator.mediaDevices)

{
getUserMedia: [Function: mockConstructor] { ... }
}

但调用结果为 undefined

我在这里遗漏了什么,在此先感谢

最佳答案

这可能是因为 CRA 将 resetMocks 默认设置为 true

this 中有解释其他问题。

Here在 CRA 中恢复该默认值的提案。

关于javascript - 使用 Jest 和 Create React App 模拟全局变量时出现未定义错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66154949/

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