我正在尝试使用 mocha js 为我的 react 代码编写测试脚本。测试助手文件是这样的 浏览器.js
var baseDOM = '<!DOCTYPE html><html><head><meta charset="utf-8"></head><body></body></html>';
var jsdom = require('jsdom').jsdom;
global.document = jsdom(baseDOM);
global.window = document.defaultView;
if ( global.self != null) {
console.log(' global.self >>>>> ' + global.self);
} else {
global.self = global.this;
}
global.navigator = {
userAgent: 'node.js'
};
测试脚本是这样的(component.specs.js)
'use strict';
import ReactDOM from 'react-dom';
import React from 'react';
import { expect } from 'chai';
import { mount, shallow, render } from 'enzyme';
import { App } from '../../js/app.js';
import sinon from 'sinon';
var dispatch = function() {
`enter code here` console.log('>>>>>>>> Mocking dispatch ');
};
describe('App', function () {
it('App calls check', () => {
sinon.spy(App.prototype, 'check');
const enzymeWrapper = mount(<App {...props} />);
expect(App.prototype.check.calledOnce).to.equal(true);
});
因此,当我运行 npm test 时,我收到错误消息“jsdom 不是一个函数”。代码有什么问题?
最佳答案
我不熟悉 jsdom但根据示例,我认为您没有正确使用它。 jsdom的示例代码:
const jsdom = require("jsdom");
const { JSDOM } = jsdom;
const dom = new JSDOM(`<!DOCTYPE html><p>Hello world</p>`);
这对你意味着 var jsdom = require('jsdom').jsdom;
应该是 var jsdom = require('jsdom').JSDOM;
.该示例还使用了 new
。
也就是说,您可能想查看 jest用于测试 Node/ react - 它非常容易设置并且运行良好。
关于javascript - Mocha js 与 react js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45403756/