簡體   English   中英

Jest - 測試 ES6 類

[英]Jest - Test an ES6 class

我正在學習用Jest測試我的 JavaScript。 我有一個基本項目,設置如下:

/
  /src
    myClass.js
  /tests
    myClass.test.js
  package.json

代碼如下所示:

我的類.js

export class MyClass {
  constructor() {
    this.result = null;
  }

  calculate() {
    this.result = 1;
    return this.result;
  }
}

myClass.test.js

import { MyClass } from '../src/myClass';

test('Calculate', () => {
  let myObject = new MyClass();
  let result = myObject.calculate();
  expect(result).toBe(1);
});

包.json

{
    "name": "sample-project",
    "version": "0.0.1",
    "type":"module",
    "scripts": {
        "dev": "vite",
        "build": "vite build",
        "serve": "vite preview",
        "test": "jest"
    },
    "dependencies": {
        "vue": "^3.2.16",
        "vue-router": "^4.0.11"
    },
    "devDependencies": {
        "@vitejs/plugin-vue": "^1.9.3",
        "jest": "^27.3.1",
        "vite": "^2.6.4",
        "vite-plugin-html": "^2.1.1",
        "vite-plugin-singlefile": "^0.5.1"
    }
}

當我使用npm run test運行我的測試時, npm run test執行jest ,我收到一個錯誤消息: SyntaxError: Cannot use import statement outside a module

我究竟做錯了什么? 如何從 Jest 測試MyClass

請遵循Jest 入門指南中Babel部分

只需運行:

yarn add --dev babel-jest @babel/core @babel/preset-env

並在項目根目錄下創建babel.config.js文件,內容如下:

// babel.config.js
module.exports = {
  presets: [['@babel/preset-env', {targets: {node: 'current'}}]],
};

僅供參考:Jest 在后台使用虛擬節點環境。 如果沒記錯的話,最早支持的 Node 版本是 10。因此,如果你想使用 ES6 特性,你需要配置一個像 Babel 這樣的源代碼轉換器。 來源

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM