更新到npm后,使用Jest进行单元测试出错3.3.12

时间:2015-11-28 22:01:57

标签: node.js reactjs npm jestjs

我最近将我的项目更新到节点5.1.0,npm 3.3.12并更新了所有依赖项......现在我正在对抗一堆错误!

最初我遇到了与此问题相同的错误:https://github.com/facebook/jest/issues/554,很容易修复。

现在我正在接受这个:

  

警告:React.createElement:type不应为null,未定义,   布尔值或数字。它应该是一个字符串(对于DOM元素)或a   ReactClass(用于复合组件)。

  

错误:不变违规:元素类型无效:期望一个字符串(对于内置组件)或一个类/函数(对于复合组件)但得到:object。

我在package.json中有这个:

"jest": {
    "collectCoverage": true,
    "testRunner": "./node_modules/jest-cli/src/testRunners/jasmine/jasmine2",
    "scriptPreprocessor": "./node_modules/babel-jest",
    "unmockedModulePathPatterns": [
        "./node_modules/es6-promise",
        "./node_modules/events",
        "./node_modules/fbjs",
        "./node_modules/flux",
        "./node_modules/history",
        "./node_modules/immutable",
        "./node_modules/lodash",
        "./node_modules/moment",
        "./node_modules/react",
        "./node_modules/react-addons-pure-render-mixin",
        "./node_modules/react-addons-test-utils",
        "./node_modules/react-d3",
        "./node_modules/react-dom",
        "./node_modules/react-modal",
        "./node_modules/react-router",
        "./node_modules/whatwg-fetch"
    ]
  }

我的测试的相关部分是:

var ImageGallery = require('../../../app/components/image-gallery/image-gallery');
imageGalleryComponent = TestUtils.renderIntoDocument(
    <ImageGallery
        items={items}
        onSlide={onSlideMock}
        lazyLoad={false}
        showBullets={true}
        showThumbnails={true}
        showNav={true}
        slideInterval={4000}/>
);

有人遇到过这个问题吗?关于如何解决它的任何线索?

1 个答案:

答案 0 :(得分:2)

在我的代码中我使用带有“导入”的babel,所以问题是在测试中我需要使用“import”或者只是在require语句的末尾添加一个“.default”,类似于这样:

{{1}}