gpt4 book ai didi

javascript - Mocha + react : navigator is not defined

转载 作者:行者123 更新时间:2023-12-03 13:58:57 25 4
gpt4 key购买 nike

我正在尝试为 React 组件编写第一个测试,但不断收到错误:

ReferenceError: navigator is not defined

我有一个组件,它的一个子组件使用 codemirror用于显示可编辑的文本区域。问题是,在 codemirror 中,会检查导航器的类型。由于我不是在浏览器中运行此代码,而是在带有 Node.js 的终端中运行,因此它未定义。

SO 上的一些人建议设置全局变量,但这对我不起作用。这是测试代码:

global.navigator = {
userAgent: 'node.js'
};

import React from 'react'
import { shallow, render } from 'enzyme'
import { expect } from 'chai'
import { MessagesView } from '../../components/MessagesView'

describe('components', () => {
describe('Message views', () => {
it('render buttons', () => {

})
})
})

还有办法设置导航器变量吗?或者也许我可以使用 Mocha 选项设置全局变量?

最佳答案

看这里 https://github.com/airbnb/enzyme/blob/master/docs/guides/jsdom.md

基本上,您需要配置 jsdom 来为您创建窗口对象。

var jsdom = require('jsdom').jsdom;

global.document = jsdom('');
global.window = document.defaultView;
Object.keys(document.defaultView).forEach((property) => {
if (typeof global[property] === 'undefined') {
global[property] = document.defaultView[property];
}
});

global.navigator = {
userAgent: 'node.js'
};

这应该放在Mocha的安装文件中。

关于javascript - Mocha + react : navigator is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41194264/

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