Tam*_*ara 2 javascript mocha.js navigator reactjs
我正在尝试为React组件编写第一个测试,并不断出错:
ReferenceError: navigator is not defined
Run Code Online (Sandbox Code Playgroud)
我有组件,其中一个子组件使用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', () => {
})
})
})
Run Code Online (Sandbox Code Playgroud)
还有设置导航变量的方法吗?或者也许我可以使用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'
};
Run Code Online (Sandbox Code Playgroud)
这应该放在Mocha的安装文件中。
| 归档时间: |
|
| 查看次数: |
3033 次 |
| 最近记录: |