Jest测试框架-让Jest支持ES6语法
Jest测试框架-让Jest支持ES6语法
这是之前的代码:
// 存放业务文件 function web1(money){ return money>=200?"vip":"menber" } function web2(money){ return money>=1000?"svip":"glodvip" } module.exports={ web1,web2 }
// 存放测试用例 const web= require("./web"); const { web1,web2}=web test("200vip",()=>{ expect(web1(100)).toBe("vip") }) test("1000vip",()=>{ expect(web2(2000)).toBe("svip") })
ES6:
// 存放业务文件 export function web1(money){ return money>=200?"vip":"menber" } export function web2(money){ return money>=1000?"svip":"glodvip" }
import { web1,web2} from ./web // 只支持commonjs,按照目前运行的话会直接报错的~nodejs不知import语法 // 存放测试用例 test("200vip",()=>{ expect(web1(100)).toBe("vip") }) test("1000vip",()=>{ expect(web2(2000)).toBe("svip") })
运行结果:
SyntaxError: Cannot use import statement outside a module at Runtime.createScriptFromCode (node_modules/jest-runtime/build/index.js:1350:14)
安装babel,自动装换commonjs
将import 装换为require,后面就可以直接用es6语法
yarn add @babel/core --dev
yarn add @babel/preset-env --dev
安装完babel后,查看一下package.json文件下的devDependencies看看有没有babel
{ "name": "jest", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "jest --watchAll" }, "author": "", "license": "ISC", "devDependencies": { "@babel/core": "^7.12.10", "@babel/preset-env": "^7.12.11", "jest": "^26.6.3" } }
成功安装后babel还需要一个配置文件.babelrc.json
{ "presets": [ [ "@babel/preset-env",{ "targets":{ "node":"current" } } ] ] }
重新运行yarn test可以正常执行了。
因为Jest下面支持babel-jest,执行yarn test之前先检查package.json有没有安装babel,有的话查找.babelrc.json配置,有的就转换,最后才执行yarn test所有执行时间会有点变长。
上一篇:
5款热门的远程控制软件,让你事半功倍
下一篇:
黑盒测试用例设计-等价类划分法