javascript - 使用 Jest 和 Create React App 模拟全局变量时出现未定义错误
问题描述
我是使用 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
我在这里错过了什么,提前感谢
解决方案
推荐阅读
- combinations - 选择序列的子集以使它们的总和具有最小方差?
- javascript - Framework 7 + Vue 3 智能选择显示动态选择选项
- python - 具有不同列值但 1 列的多个 get_group
- ruby - 我应该在 Ruby 和 Linux 中使用什么 gem 或外部程序来帮助选择图像?
- javascript - Highcharts Heatmap - 如何在值超过“1”时让块彼此相邻
- python - 在pyspark中的一行中解析多个json
- node.js - 找不到在 Nodejs Express 中导入的模块
- c# - 在 C# 中以 Windows 窗体显示来自我的 .json 文件的数据
- python - ARCH/GARCH 模型的 test_X 数据框
- r - R中的重复函数输出非重复条目