gpt4 book ai didi

javascript - 单元测试 Vue 组件 - Jest 设置 - 意外的标识符错误

转载 作者:可可西里 更新时间:2023-11-01 02:27:00 25 4
gpt4 key购买 nike

我是 Jest 的新手,我正在尝试运行一个简单的单元测试,以确保一切设置正确,并且在编译期间遇到了很多问题,排查错误。

运行测试套件时,Jest 成功找到了我正在尝试测试的文件,并在第 1 行生成了以下意外标识符错误消息。知道这是为什么吗?有什么东西不见了吗?很长一段时间以来,我一直在尝试解决这个问题。

/Users/foo/Sites/test/Test.spec.js:1
({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){import Test from './Test.vue';
^^^^

SyntaxError: Unexpected identifier

at ScriptTransformer._transformAndBuildScript (node_modules/jest-runtime/build/script_transformer.js:403:17)

请注意,完全删除导入语句可以成功运行测试。然而,我设置 Jest 的全部原因是为了测试 vue 组件。

测试.vue

<template>
<div class="test">
</div>
</template>

<script>
export default {
name: 'test',
components: { },
data() {
return {

}
},
methods: {
helloWorld() {
return 'hello world';
}
}
}
</script>

测试.spec.js

import Test from './Test.vue'

describe('Test',() => {
it('test', () => {
expect(true).toBe(true);
});
});

包.json

"devDependencies": {
"@vue/test-utils": "^1.0.0-beta.25",
"axios": "^0.18.0",
"babel-core": "^6.26.0",
"babel-jest": "^23.6.0",
"babel-loader": "^7.1.2",
"cross-env": "^5.1.1",
"file-loader": "^2.0.0",
"jest": "^23.6.0",
"jquery": "^3.2",
"laravel-mix": "^2.0",
"lodash": "^4.17.4",
"popper.js": "^1.14.3",
"source-map-support": "^0.5.9",
"vue": "^2.5.7",
"vue-jest": "^3.0.0",
"vue-test-utils": "^1.0.0-beta.11",
"webpack": "^3.8.1"
},
"jest": {
"moduleFileExtensions": [
"js",
"json",
"vue"
],
"transform": {
".*\\.(vue)$": "vue-jest",
"^.+\\.js$": "babel-jest"
}
}

最佳答案

您在测试中使用了 ES6 功能,即 import 语句,因此您需要使用预设将它们编译为 ES5。

创建一个 babel.config.js 并添加 @babel/preset-env ,像这样,

//babel.config.js
module.exports = {
presets: ["@babel/preset-env"]
};

接下来,在你的 package.json 下的 jest 设置中,让 jest 知道 root 在哪里您的测试代码位于,module directories将由 jest 递归搜索,就像这样,

//package.json
"roots": [
"test"
],
"moduleDirectories": [
"test",
"node_modules"
],

关于javascript - 单元测试 Vue 组件 - Jest 设置 - 意外的标识符错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52807578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com