首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jest:意外令牌@ Decorator

Jest:意外令牌@ Decorator
EN

Stack Overflow用户
提问于 2017-10-31 12:21:30
回答 1查看 2.8K关注 0票数 5

我收到了一个错误:测试套件运行失败:意外令牌(5:0)

代码语言:javascript
复制
3 | import Locale from '../stores/view/language'
4 |
5 | @observer
  | ^
6 | export default class DateFormat extends Component {
7 |   constructor(props) {
8 |     super(props)

我使用Webpack + Babel + Jest ++ react + Mobx

这是我的一些package.json

代码语言:javascript
复制
{
  "scripts": {
    "test": "jest",
  },
  "devDependencies": {
    "babel-eslint": "8.0.1",
    "babel-jest": "21.2.0",
    "enzyme": "3.1.0",
    "enzyme-adapter-react-16": "1.0.2",
    "jest": "21.2.1",
  },
  "babel": {
    "presets": [
      "env",
      "react"
    ],
    "env": {
      "test": {
        "presets": [
          "env",
          "react"
        ]
      }
    }
  },
  "dependencies": {
    "axios": "0.16.2",
    "babel-core": "6.26.0",
    "babel-loader": "7.1.2",
    "babel-plugin-transform-class-properties": "6.24.1",
    "babel-plugin-transform-decorators-legacy": "1.3.4",
    "babel-preset-env": "1.6.1",
    "babel-preset-es2015": "6.24.1",
    "babel-preset-react": "6.24.1",
    "extract-text-webpack-plugin": "3.0.2",
    "mobx": "3.3.1",
    "mobx-react": "4.3.3",
    "node-sass": "4.5.3",
    "react": "16.0.0",
    "react-dom": "16.0.0",
    "react-interpolate-component": "0.11.0",
    "react-router-dom": "4.2.2",
    "react-test-renderer": "16.0.0",
    "react-translate-component": "0.14.0",
    "webpack": "3.8.1"
  },
  "jest": {
    "testPathIgnorePatterns": [
      "./__tests__/test-setup.js"
    ],
    "setupTestFrameworkScriptFile": "./__tests__/test-setup.js",
    "transform": {
      "^.+\\.jsx?$": "babel-jest"
    }
  }
}

这是im测试的组件:

代码语言:javascript
复制
import React, { Component } from 'react'
import { observer } from 'mobx-react'
import Locale from '../stores/view/language'

@observer
export default class DateFormat extends Component {
  constructor(props) {
    super(props)
    this.state =
    {
      fi: { lang: 'fi-FI', options: { year: 'numeric', month: 'numeric', day: 'numeric' } },
      en: { lang: 'en-US', options: { year: 'numeric', month: 'long', day: 'numeric' } },
    }
  }

  render() {
    return (
      <span>
        {new Date(this.props.date).toLocaleDateString(
          this.state[Locale.currentLang].lang,
          this.state[Locale.currentLang].options,
        )}
      </span>
    );
  }
}

我想不出怎么修理可观察到的。我是不是遗漏了什么?还是我应该用别的方法来测试这个?

我没有.babelrc文件。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-31 13:26:27

我认为您需要添加一个.babelrc文件。听起来,您似乎缺少了babel的es2016插件,它将ES7代码(如装饰器)转换为ES5。

https://babeljs.io/docs/plugins/preset-es2016/

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

https://stackoverflow.com/questions/47035288

复制
相关文章

相似问题

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