前端单元测试(未完。。)

基本知识

  • karma作用为供应浏览器测试环境,mocha为真正测试框架,chai为断言库

测试用例基本

  • describe块称为”测试套件”(test suite),示意一组相干的测试。它是一个函数,第一个参数是测试套件的称号(”加法函数的测试”),第二个参数是一个现实实行的函数。
    describe钩子:

    `describe('hooks', function() {
       
       before(function() {
         // 在本区块的一切测试用例之前实行
       });
       
       after(function() {
         // 在本区块的一切测试用例以后实行
       });
       
       beforeEach(function() {
         // 在本区块的每一个测试用例之前实行
       });
       
       afterEach(function() {
         // 在本区块的每一个测试用例以后实行
       });
       
       // test cases
    });`
  • it块称为”测试用例”(test case),示意一个零丁的测试,是测试的最小单元。它也是一个函数,第一个参数是测试用例的称号,第二个参数是一个现实实行的函数。

    describe('加法函数的测试', function() {
      it('1 加 1 应当即是 2', function() {
        expect(add(1, 1)).to.be.equal(2);
      });
    });

mocha

  • 断言库:should.js – BDD style shown throughout these docs
    expect.js – expect() style assertions
    chai – expect(), assert() and should-style assertions
    better-assert – C-style self-documenting assert()
    unexpected – “the extensible BDD assertion toolkit”

karma环境搭建(karma+mocha+chai+webpack)

  • 依靠模块装置:
npm install karma-cli -g
cnpm install karma karma-chai karma-mocha karma-webpack webpack babel-loader babel-core mocha chai karma-chrome-launcher --save-dev
  • 天生karma.conf.js文件
 karma init karma.conf.js
  • 依据项目需求修正karma.conf.js设置
  • 启用karma
karma start karma.conf.js

注重:设置文件:files中设置included:false,须要手动加载测试文件,不会自动加载即不会自动测试
运用coverage时,webpack设置:在webpack中需加:

{
        test: /\.js$/,
        loader: 'babel-loader',
        query:{
          plugins:['istanbul']
        }
      }

mocha

karma

chai文档

karma-coverage文档

karma笔记

mocha笔记

chai笔记

    原文作者:qzuser
    原文地址: https://segmentfault.com/a/1190000018238895
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞