前端单元测试学习

主要方案
  • karma+mocha(主要介绍)
  • jest
工具介绍
  • Karma为前端自动化测试提供了跨浏览器能力
  • Mocha是前端自动化测试框架,需要解决的是兼容不同风格的断言库,测试用例分组,同步异步测试架构,生命周期钩子等框架级的能力.

2.1 Mocha

  • Mocha的基本语法
    describe('现在要测XX功能',function(){
        it('某个变量的值应该是数字',function(){
            //写断言
        })
    });
     describe('现在要测YY功能',function(){
        it('某个数组长度应该不小于10',function(){
            //写断言
        })
    });
})

  • 异步测试语法
describe('现在要测XX功能',function(){
    it('某个变量的值应该是数字',function(done){
        //写断言
        //手动调用done()表示异步结束,类似于Promise中的resolve
    })
});

默认超时时间两秒,可通过命令行测试.

  • 不同风格的断言库 支持should.js,expect.js及node核心断言模块的assert等.
  • 生命周期钩子 生命周期钩子一般用来建立和清理环境或全局变量.
describe('hooks', function() {
  before(function() {
    // runs before all tests in this block
  });
  after(function() {
    // runs after all tests in this block
  });
  beforeEach(function() {
    // runs before each test in this block
  });
  afterEach(function() {
    // runs after each test in this block
  });
  // test cases
});

Chai

Chai是一个断言库合集,提供许多判断断言是否成立的API.
具体例子参考链接

参考链接:
阮一峰的网络日志
大前端的自动化工厂(5)—— 基于Karma+Mocha+Chai的单元测试和接口测试
李棠辉的Vue单元测试实战教程(Mocha/Karma + Vue-Test-Utils + Chai)
vue官方文档单元测试部分

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