react项目中使用mocha结合chai断言库进行单元测试

react项目中使用mocha结合chai断言库进行单元测试

git地址:https://github.com/yancekang/...react

若是对你有所帮助,感谢startgit

项目搭建

create-react-app react-mocha-test 建立一个名称为 react-mocha-test 的react项目github

进入 react-mocha-test 安装 Mocha 为了操做的方便,请在全面环境也安装一下Mochanpm

npm install -g mochaapp

编写测试脚本

1.进入src目录,新建tool.js文件存放咱们的须要测试的函数,函数的具体做用这里就不须要解释了。less

function checkSex (idcard) {
  if (idcard === undefined || idcard === null) {
    return '男'
  }
  if (parseInt(idcard.substr(16, 1)%2, 10) === 1) {
    return '男'
  } else {
    return '女'
  }
}

function add(x, y) {
  return x + y
}

function getParameterByName(name, url) {
   if (!url) url = window.location.href;
   /*eslint no-useless-escape: */
   name = name.replace(/[\[\]]/g, "\\$&");
   var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
       results = regex.exec(url);
   if (!results) return null;
   if (!results[2]) return '';
   return decodeURIComponent(results[2].replace(/\+/g, " "));
}
module.exports = {
  checkSex,
  add,
  getParameterByName
}

2.在根目录中 test 中创建测试脚本文件,列如: index.js函数

在文件中引入咱们要测试的函数单元测试

let {checkSex, add, getParameterByName} = require('../src/tool/tool.js')测试

咱们还用到了chai断言库,详情请了解 chaiui

所谓"断言",就是判断源码的实际执行结果与预期结果是否一致,若是不一致就抛出一个错误。

使用npm install chai安装

经过let expect = require('chai').expect 引入

接下来咱们就开始写断言测试,这里只写一种

测试第一个函数checkSex

describe('根据身份证号码验证用户性别', function() {
  it('110101199003072615 男', function() {
    expect(checkSex('110101199003072615')).to.be.equal('男')
  })
  it('110101199003072156 男', function() {
    expect(checkSex('110101199003072156')).to.be.equal('男')
  })
  it('15010219900307442X 女', function() {
    expect(checkSex('15010219900307442X')).to.be.equal('女')
  })
  it('150102199003075385 女', function() {
    expect(checkSex('150102199003075385')).to.be.equal('女')
  })
})

这里举例四种测试用例,根据身份证号码辨别该用户的性别和咱们预期的是否一致。

基本上,expect断言的写法都是同样的。头部是expect方法,尾部是断言方法,好比equala/anokmatch等。二者之间使用toto.be链接。

若是expect断言不成立,就会抛出一个错误。事实上,只要不抛出错误,测试用例就算经过。

在项目根目录执行npm test进行单元测试,能够看到测试结果

测试经过

测试异常

相关文章
相关标签/搜索