- 利用jest进行测试
- 新建jest.config.js
module.exports = {
moduleFileExtensions: [ 'js', 'jsx', 'json', 'vue' ],
transform: {
'^.+\\.vue$': 'vue-jest',
'.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$': 'jest-transform-stub',
'^.+\\.jsx?$': 'babel-jest'
},
transformIgnorePatterns: [
'/node_modules/'
],
moduleNameMapper: {
'^@/(.*)$': '<rootDir>/src/$1'
},
snapshotSerializers: [
'jest-serializer-vue'
],
testMatch: [
'**/__tests__/**/*.(js|jsx|ts|tsx)'
],
testPathIgnorePatterns:[
'\.eslintrc\.js'
],
testURL: 'http://localhost/',
watchPlugins: [
'jest-watch-typeahead/filename',
'jest-watch-typeahead/testname'
]
}
- HelloWorld.test.js
import { shallowMount,mount } 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, {
propsData: { msg }
})
expect(wrapper.findAll('.mmm').length).toBe(2)
})
it('快照测试,及时捕获ui的变化',()=>{
const wrapper = shallowMount(HelloWorld, {
propsData: { msg:'Hello' }
})
expect(wrapper).toMatchSnapshot();
})
})