一、安装
// 1 创建vue项目vue create jest // 选默认vue3// 2,进入项目cd jestcode ./// 3,安装jestvue add unit-jest// 项目中多了jest.config.js文件和tests文件夹
二、配置
// jest.config.jsmodule.exports = {preset: '@vue/cli-plugin-unit-jest',transform: {'^.+\\.vue$': 'vue-jest','^.+\\.ts$': 'ts-jest', // 新增:ts能被读取// '^.+\\.js$': "<rootDir>/node_modules/babel-jest" // js文件可以用es6}}
三、运行
npm run test:unit
四、测试公用函数
1,新增函数
// src/utils/index.tsexport const add = (num:number)=>{return ++num}
2,测试函数
// tests/unit/example.spec.jsimport { add } from '@/utils/index.ts'describe('utils测试', () => {test('adds 1 + 2 to equal 3', () => {expect(add(2)).toBe(3);});})
五、测试vue组件
1,新增组件
// src/components/HelloWorld.vue<template><h1>{{ msg }}</h1></template><script>export default {props: {msg: String}}</script>
2,测试组件
// tests/unit/example.spec.jsimport { shallowMount } from '@vue/test-utils'import HelloWorld from '@/components/HelloWorld.vue'describe('HelloWorld.vue组件测试', () => {it('renders props.msg when passed', () => {const msg = 'new message'const wrapper = shallowMount(HelloWorld, {props: { msg }})expect(wrapper.text()).toMatch(msg)})})
六、运测试结果
> jest@0.1.0 test:unit> vue-cli-service test:unitPASS tests/unit/example.spec.jsHelloWorld.vue组件✓ renders props.msg when passed (13ms)utils测试✓ adds 1 + 2 to equal 3Test Suites: 1 passed, 1 totalTests: 2 passed, 2 totalSnapshots: 0 totalTime: 2.345sRan all test suites.
