如何使用npm将自定义模块导入babel-jest测试?

时间:2019-05-04 14:20:48

标签: javascript node.js unit-testing jestjs babel-jest

我正在使用npm创建一个Web应用程序。我正在尝试运行自定义模块的单元测试。

首先,使用我用来生成问题的命令:

vue-cli-service test:unit

我得到的错误:

FAIL  tests/unit/js/myModule.spec.js
 ● Test suite failed to run

   .../tests/unit/js/myModule.spec.js:1
   ({"Object.<anonymous>":
     function(module,exports,require,__dirname,__filename,global,jest)
   {import MyModule from "@/js/myModule.js";                                               
           ^^^^^^^^

   SyntaxError: Unexpected identifier

与问题相关的我的项目结构如下:

.
├── jest.config.js
├── src
│   ├── js
│   │   └── myModule.js
└── tests
    └── unit
        └── js
            └── myModule.spec.js

在我的package.json中:

{
   "devDependencies": {
      "babel-jest": "^24.7.1"
   }
}

myModule.js的正文:

class MyModule {
    static method(){}
}

export default MyModule

myModule.spec.js的正文中,我称:

import MyModule from "@/js/myModule.js";

什么可能导致此错误?我使用同一行在myModule中导入src/js/otherModule.js,这没有问题。这可能与使用babel有关吗?

另外,请告诉我这里是否还需要其他文件/配置(玩笑,通天塔)以更全面地了解问题。

1 个答案:

答案 0 :(得分:-1)

使用

const MyModule = require('@/js/myModule')

并将导出模块更改为

module.exports = MyModule;

解决了这个问题。