javascript - React Jest 示例不起作用

标签 javascript node.js testing reactjs jestjs

尝试运行 Jest 测试 React 代码的示例(来自 https://github.com/facebook/jest/tree/master/examples/react ),我收到以下错误:

  > @ test /home/aizquier/jest/examples/react
  > jest

  Using Jest CLI v0.7.1
   FAIL  __tests__/CheckboxWithLabel-test.js 
  ● Runtime Error
  SyntaxError: /home/aizquier/jest/examples/react/__tests__/CheckboxWithLabel-test.js: Unexpected token (15:6)
  npm ERR! Test failed.  See above for more details.

测试在文件 CheckboxWithLabel-test.js 的第 15 行失败:

jest.dontMock('../CheckboxWithLabel');

import React from 'react';
import ReactDOM from 'react-dom';
import TestUtils from 'react-addons-test-utils';

const CheckboxWithLabel = require('../CheckboxWithLabel');

describe('CheckboxWithLabel', function() {

  it('changes the text after click', function() {

    // Render a checkbox with label in the document
    var checkbox = TestUtils.renderIntoDocument(
      <CheckboxWithLabel labelOn="On" labelOff="Off" />
    );

    var checkboxNode = ReactDOM.findDOMNode(checkbox);

    // Verify that it's Off by default
    expect(checkboxNode.textContent).toEqual('Off');

    // Simulate a click and verify that it is now On
    TestUtils.Simulate.change(TestUtils.findRenderedDOMComponentWithTag(checkbox, 'input'));
    expect(checkboxNode.textContent).toEqual('On');
  });

});

显然处理 .jsx 的预处理器不工作。 package.json如下:

{
  "dependencies": {
    "react": "~0.14.0",
    "react-dom": "~0.14.0"
  },
  "devDependencies": {
    "react-addons-test-utils": "~0.14.0",
    "babel-jest": "*",
    "jest-cli": "*"
  },
  "scripts": {
    "test": "jest"
  },
  "jest": {
    "scriptPreprocessor": "./node_modules/babel-jest",
    "unmockedModulePathPatterns": [
      "./node_modules/react",
      "./node_modules/react-dom",
      "./node_modules/react-addons-test-utils",
      "./node_modules/fbjs"
    ]
  }
}

我的 Node 是 v4.2.2,npm 是 3.3.12。

有什么想法吗??

最佳答案

我遇到了同样的问题。看起来这是由最近发布的 Babel 6 引起的问题。它是 tracked here ,并希望尽快添加修复程序!

与此同时,您可以在 package.json 中返回到较早版本的 babel-jest。例如,尝试 ^5.3.0

关于javascript - React Jest 示例不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33662225/

相关文章:

javascript - 检查是否使用 mocha 触发了一个事件

node.js - Node.js Stream API 的意外行为

testing - 可以使用哪些工具来帮助多用户测试

javascript - 根据用户输入打印 for 循环

javascript - 更改输入类型 ="file"标签内容

node.js - 如何通过 VS Code 使用全局 Node 包

node.js - 是否可以将文件发布到 MQTT 服务器?

python - Django 测试在测试数据库创建上浪费了太多时间

javascript - 动态切换 “autohideMenuBar”不起作用吗?

处理总计时的 Javascript $NaN