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

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

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

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

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";

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

另外,请告诉我这里是否需要更多文件/配置(jest、babel)来更广泛地了解问题。

最佳答案

使用

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

并将导出模块更改为

module.exports = MyModule;

解决了问题。

关于javascript - 如何使用 npm 将自定义模块导入 babel-jest 测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55983464/

相关文章:

node.js - 全局异常处理程序无法在node.js中工作

python - 使用应用程序工厂时在 pytest 测试中访问 Flask 测试客户端 session

node.js - 使用 require() 并导入私有(private) npm 模块失败

c# - 属性的单元测试体

flutter - 用于 dart/flutter 测试的覆盖/模拟库函数

javascript - OSRM WebAPI 参数中的负经度

javascript - jQuery 延迟 promise 似乎不适用于打开新窗口

javascript - Bing map 在加载其 javascript 文件后未定义

javascript - Vue 组件与 vanilla 代码互操作

node.js - npm install formidable 在 Node 0.10 中不起作用