vue 单元测试

 在 vscode 编辑器安装一个名为 jest 的插件 

vue 单元测试_第1张图片

 创建项目 (用此新建的项目可以不用安装依赖)

vue init webpack unit-demo

编写 jest 配置文件

需要在 jest.conf.js中加入此代码否则会报错

verbose: true,
testURL: 'http://localhost/',

unit-testing-demo\test\unit\jest.conf.js 

const path = require('path')

module.exports = {
  verbose: true,
  testURL: 'http://localhost/',
  rootDir: path.resolve(__dirname, '../../'),
  moduleFileExtensions: [
    'js',
    'json',
    'vue'
  ],
  moduleNameMapper: {
    '^@/(.*)$': '/src/$1'
  },
  transform: {
    '^.+\\.js$': '/node_modules/babel-jest',
    '.*\\.(vue)$': '/node_modules/vue-jest'
  },
  testPathIgnorePatterns: [
    '/test/e2e'
  ],
  snapshotSerializers: ['/node_modules/jest-serializer-vue'],
  setupFiles: ['/test/unit/setup'],
  mapCoverage: true,
  coverageDirectory: '/test/unit/coverage',
  collectCoverageFrom: [
    'src/**/*.{js,vue}',
    '!src/main.js',
    '!src/router/index.js',
    '!**/node_modules/**'
  ]
}

编写一个组件 

unit-testing-demo\src\components\HelloWorld.vue




对该组件进行测试

unit-testing-demo\test\unit\specs\HelloWorld.spec.js

import Vue from 'vue'
import HelloWorld from '@/components/HelloWorld'

describe('HelloWorld.vue', () => {
  it('should render correct contents', () => {
    const Constructor = Vue.extend(HelloWorld)
    const vm = new Constructor().$mount()
    expect(vm.$el.querySelector('.hello h1').textContent)
      .toEqual('Welcome to Your Vue.js App')
  })
})

启动测试 

npm run unit

参考

工具库Vue Test Utils

中文官方文档

你可能感兴趣的:(前端,单元测试)