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

babel是什么?

js发展史

将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所有执行时间会有点变长。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值