zoukankan      html  css  js  c++  java
  • 【node】mocha单元测试框架【格尔尼卡ぃ】

    一、mocha简介

    单元测试是用来对一个模块、一个函数、或者一个类来进行正确性的检测工作
     
    特点:
         既可以测试简单的JavaScript函数,又可以测试异步代码,
     
         可以自动运行所有测试,也可以只运行特定的测试
     
    二、编写模块代码
     1 module.exports = {
     2 add:function(a,b){
     3 return a+b;
     4 },
     5 
     6 reduce:function(a,b){
     7 return a-b;
     8 },
     9 
    10 ride:function(a,b){
    11 return a*b
    12 }
    13 }

    三、编写测试脚本

     1 1、全局安装mocha模块   cnpm install mocha -g
     2 
     3 2、安装chai模块  cnpm install chai --save-dev
     4 
     5 3、describe块称为"测试套件"(test suite),表示一组相关的测试。它是一个函数,第一个参数是测试套件的名称("加法函数的测试"),第二个参数是一个实际执行的函数。
     6     it块称为"测试用例"(test case),表示一个单独的测试,是测试的最小单位。它也是一个函数,第一个参数是测试用例的名称("1 加 1 应该等于 2"),第二个参数是一个实际执行的函数。
     7 
     8 4、在接下来的测试中我们用expect进行测试
     9 
    10     const expect = require("chai").expect;
    11 
    12     describe("对计算器模块的测试",function(){
    13             //对模块的测试放在it里面
    14             it("测试加法",function(){
    15                 
    16                 //相等不相等的判断
    17                         //测试:断定add方法1+2的值是3
    18                         expect(calculator.add(1,2)).to.equal(3)
    19 
    20                         //测试:断定add方法1+2的值不等于3
    21                         expect(calculator.add(1,2)).to.not.equal(10)
    22 
    23 
    24                 //类型的判断
    25                         //测试:断定add方法的返回值得类型是number
    26                         expect(calculator.add(1,2)).to.be.a("number");
    27 
    28                         //测试:断定这个值得类型是一个对象
    29                         expect({name:"zhao"}).to.be.an("Object");
    30 
    31                         //测试:断定这个值得类型是一个数组
    32                         expect([1,2,3]).to.be.an("array");
    33 
    34                 //长度的判断
    35                         //测试:断定str方法的返回值的长度是3
    36                         expect(calculator.str()).to.have.lengthOf(3);
    37 
    38 
    39                 //是否存在的判断
    40                         //测试:断定obj方法的返回值得属性中有name这个属性
    41                         expect(calculator.obj()).to.have.property("name");
    42 
    43                         //测试:断定这个值里面有3这个值
    44                         expect([1,2,3,4]).to.include(3);
    45 
    46                         //测试:断定这个值的内容值有o这个字符
    47                         expect("zhao").to.contain("o");
    48 
    49 
    50                 //布尔值的判断
    51                         //测试:断定这个值得布尔值的类型是true
    52                         expect("abc").to.be.ok;
    53 
    54                         //测试:断定这个值得布尔值的类型不是true
    55                         expect("").to.be.not.ok;
    56             })
    57     })
    58 
    59 mocha还可以监听脚本的变化  mocha --watch
    60 
    61  
    62 基本上,expect断言的写法都是一样的。头部是expect方法,尾部是断言方法,比如equal、a/an、ok、match等。两者之间使用to或to.be连接。
    63 详情请参考:http://www.ruanyifeng.com/blog/2015/12/a-mocha-tutorial-of-examples.html
  • 相关阅读:
    yum之镜像加速
    MySQL5.7安装
    销售订单的批量审批/反审
    MM06E005 EXIT_SAPMM06E_013 采购订单增强
    直接用代码查找增强Enhancement
    SAP相关业务表
    模拟会计凭证审批 OO ALV(屏幕跳转、定位行数据、审批按钮)
    spark 和 fink
    说说spark
    golang server端的epoll
  • 原文地址:https://www.cnblogs.com/Guernicas/p/9865522.html
Copyright © 2011-2022 走看看