前端单元测试部署和使用

随着前端越来越向模块化发展,单元测试对于前端开发来说也越来越重要。废话不多说,直奔主题:

1、前端单元测试框架有很多,我主要用的是jest框架。选择这个框架原因是因为一下几点:

  a、该框架已经集成断言库,不需要我们再额外安装第三方的断言库,很方便。

  b、安装配置简单,非常容易上手,几乎是零配置的,通过npm 命令安装就可以直接运行了

  c、Jest 的测试用例是并行执行的,而且只执行发生改变的文件所对应的测试,提升了测试速度

通过npm或者yarn安装jest和babel-jest,这里jest的版本建议安装26一下的,我安装的是25.5.4,可以避免一些因为升级带来的问题。

安装命令:

yarn add jest @25.5.4

  安装好之后,在package.json的scripts里面增加一个命令:test: 'jest',如图:


 然后在package.json的同级目录下新增一个jest.config.js,内容如下:

 

module.exports = {
  testMatch: ["<rootDir>/src/tests/**/*.(spec|test).js?(x)"],
  transform: {
    // 将.js后缀的文件使用babel-jest处理
    "^.+\\.js$": "babel-jest"
  },
  // 下面非要从重要, 将不忽略 lodash-es, other-es-lib 这些es库, 从而使babel-jest去处理它们
  transformIgnorePatterns: ["<rootDir>/node_modules/(?!(lodash-es|other-es-lib))"]
};

  

在对应的src目录下新建tests目录,在该目录中新建测试用例文件,格式为xxx.test.js或者xxx.spec.js。

关于一些断言方法或者更多关于jest的内容,可以访问传送门:https://jestjs.io/

 如果你的项目使用到了ES6语法的话,还要在.babelrc文件中作如下修改:(我直接贴代码)

{
  "presets": [
    [
      "@babel/preset-env", {
        "targets": {
          "node": "current"
        }
      }
    ]
  ],
  "plugins": [
    "transform-es2015-modules-commonjs",
    "@babel/plugin-proposal-class-properties"
  ],
  "env": {
    "development":{
      "plugins": ["dynamic-import-node"]
    }
  }
}

  如果缺少对应的模块记得安装好,否则运行npm run test的时候会报错

posted @ 2020-12-28 11:15  闯入码途的水产人  阅读(243)  评论(0编辑  收藏  举报