[英]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.