首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mocha TypeError:无法读取未定义的属性“addEventListener”

mocha TypeError:无法读取未定义的属性“addEventListener”
EN

Stack Overflow用户
提问于 2016-04-11 16:08:24
回答 1查看 730关注 0票数 0

我有一个应用程序使用react_on_rails宝石。一切都呈现得很好。当我使用Mocha + TestUtils + jsdom编写测试时,我收到了错误消息

TypeError: Cannot read property 'addEventListener' of undefined

使用类似的设置和相同的错误消息here,我找到了一个答案。按照建议的指示。现在,我遇到了一条来自于react on rails的错误消息:

代码语言:javascript
复制
client/node_modules/react-on-rails/node_package/lib/ReactOnRails.js:238
ReactOnRails.resetOptions();
^

ReferenceError: ReactOnRails is not defined

因为我的应用程序很复杂,为了复制相同的错误信息,我编写了一个barebone应用程序,并使用了相同的测试工具。

hello.jsx

代码语言:javascript
复制
import React from 'react';

export default class Hello extends React.Component {

  render() {
    return (
      <div>
          <h1>Hello world</h1>
      </div>
    );
  }    
}

test.js

代码语言:javascript
复制
import Hello from '../hello.jsx';
import addons from 'react/addons';
const TestUtils = addons.addons.TestUtils;
import React from 'react';
var jsdom = require('jsdom');
import assert from 'assert';
import ror from 'react-on-rails';

describe('render correctly', function() {

  it('should render', function() {
    let comp = TestUtils.renderIntoDocument(<Hello/>);
    let h1 = TestUtils.findRenderedDOMComponentWithTag(comp, 'h1');
    assert.equal(h1.getDOMNode().textContent, 'Hello world');
  });

});

package.json

代码语言:javascript
复制
{
  "name": "react-testing",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "mocha --compilers js:babel-core/register test/tests.js --require test/setup.js"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "react": "^0.14.8",
    "react-dom": "^15.0.1",
    "react-on-rails": "^5.2.0",
    "react-tools": "^0.13.3"
  },
  "devDependencies": {
    "babel-core": "^6.7.4",
    "babel-loader": "^6.2.4",
    "babel-preset-es2015": "^6.6.0",
    "babel-preset-react": "^6.5.0",
    "glob": "^4.3.5",
    "jsdom": "^3.1.1",
    "mocha": "2.3.3",
    "mocha-jsdom": "^0.2.1",
    "mocha-lcov-reporter": "0.0.1",
    "webpack": "^1.12.14"
  }
}

我不需要为这个简单的应用程序包括npm包react-on-rails。但关键是复制rails上的错误信息,所以我在应用程序中使用了它。

当我运行npm test时,我得到了完全相同的错误消息:

代码语言:javascript
复制
node_modules/react-on-rails/node_package/lib/ReactOnRails.js:238
ReactOnRails.resetOptions();
^

ReferenceError: ReactOnRails is not defined

知道怎么解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2016-04-12 01:03:08

我不认为包含用于摩卡测试的ReactOnRails npm库是合适的。如果您想要使用ReactOnRails进行真正的集成测试,请使用水原测试。有关示例,请参见/spec/ rails/tree/master/spec/dummy的虚拟模型。

我是Rails的主要作者。

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

https://stackoverflow.com/questions/36553864

复制
相关文章

相似问题

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