前端單元測試(未完。。)

基礎知識

  • karma做用爲提供瀏覽器測試環境,mocha爲真正測試框架,chai爲斷言庫

測試用例基礎

  • describe塊稱爲"測試套件"(test suite),表示一組相關的測試。它是一個函數,第一個參數是測試套件的名稱("加法函數的測試"),第二個參數是一個實際執行的函數。
    describe鉤子:html

    `describe('hooks', function() {
       
       before(function() {
         // 在本區塊的全部測試用例以前執行
       });
       
       after(function() {
         // 在本區塊的全部測試用例以後執行
       });
       
       beforeEach(function() {
         // 在本區塊的每一個測試用例以前執行
       });
       
       afterEach(function() {
         // 在本區塊的每一個測試用例以後執行
       });
       
       // test cases
    });`
  • it塊稱爲"測試用例"(test case),表示一個單獨的測試,是測試的最小單位。它也是一個函數,第一個參數是測試用例的名稱,第二個參數是一個實際執行的函數。webpack

    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中需加:git

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

mochagithub

karmaweb

chai文檔chrome

karma-coverage文檔npm

karma筆記segmentfault

mocha筆記api

chai筆記瀏覽器

相關文章
相關標籤/搜索