首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mocha js和react js

mocha js和react js
EN

Stack Overflow用户
提问于 2017-07-31 03:19:26
回答 1查看 153关注 0票数 1

我正在尝试使用mocha js为我的react代码编写测试脚本。测试助手文件如下所示的browser.js

代码语言:javascript
复制
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)

代码语言:javascript
复制
'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不是一个函数‘。代码有什么问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-31 04:01:53

我不熟悉jsdom,但根据示例,我认为您没有正确使用它。jsdom的示例代码:

代码语言:javascript
复制
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来测试节点/react-它非常容易设置并且运行良好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45403756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档