一、安装
// 1 创建vue项目
vue create jest // 选默认vue3
// 2,进入项目
cd jest
code ./
// 3,安装jest
vue add unit-jest
// 项目中多了jest.config.js文件和tests文件夹
二、配置
// jest.config.js
module.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.ts
export const add = (num:number)=>{
return ++num
}
2,测试函数
// tests/unit/example.spec.js
import { 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.js
import { 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:unit
PASS tests/unit/example.spec.js
HelloWorld.vue组件
✓ renders props.msg when passed (13ms)
utils测试
✓ adds 1 + 2 to equal 3
Test Suites: 1 passed, 1 total
Tests: 2 passed, 2 total
Snapshots: 0 total
Time: 2.345s
Ran all test suites.