jest测试vue + To Do List

2020-04-25  本文已影响0人  pengkiw

Vue Test Utils
jest官网

1 什么是 Jest?
jest是 Facebook 的一套开源的 JavaScript 测试框架, 它自动集成了断言、JSDom、覆盖率报告等开发者所需要的所有测试工具,是一款几乎零配置的测试框架。

2 安装Jest

npm install jest

3 jest.config.js 配置文件

module.exports = {
  moduleFileExtensions: ['js', 'jsx', 'json', 'vue'],
  transform: {
      '^.+\\.vue$': 'vue-jest', //使用vue-jest 转化vue语法 进行测试
      '.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$': 'jest-transform-stub', //将静态资源转字符串 不测试
      '^.+\\.jsx?$': 'babel-jest'
  },
  collectCoverageFrom: ['**/*.{vue}', '!**/node_modules/**'],
  transformIgnorePatterns: [ //不需要被转化文件
      '/node_modules/'
  ],
  moduleNameMapper: { //模块映射 处理vue语法简写
      '^@/(.*)$': '<rootDir>/src/$1'
  },
  snapshotSerializers: [ //对vue组件做快照的时候 对快照做格式化
      'jest-serializer-vue'
  ],
  testMatch: [ //需要测试的文件
      '**/__tests__/**/*.(js|jsx|ts|tsx)'
  ],
  testPathIgnorePatterns: [ //不需要测试的文件
      '.eslintrc.js'
  ],
  testURL: 'http://localhost/', //执行测试的时候 模拟浏览器环境的地址
  watchPlugins: [
      'jest-watch-typeahead/filename',
      'jest-watch-typeahead/testname'
  ]
}

4 常用匹配器

test('two plus two is four', () => {
  expect(2 + 2).toBe(4);
});

匹配相反的测试值

expect(a + b).not.toBe(0);

.toEqual() 匹配器会递归的检查对象所有属性和属性值是否相等

test('对象分配属性',()=>{
    const data={one:1};
    data['two']=2;
    expect(data).toEqual({one:1,two:2});
});

.toMatch 传入一个正则表达式,它允许我们用来进行字符串类型的正则匹配

5 查看代码覆盖

    "test:cov": "vue-cli-service test:unit --coverage"
上一篇下一篇

猜你喜欢

热点阅读