前端单元测试Unit Test---2---入门

本文是前端单元测试系列的第二篇,重点介绍Mocha和Chai的基础知识。Mocha是一个支持异步测试的JavaScript测试框架,而Chai是常用的断言库。文章详细讲解了如何安装这两个库,编写测试脚本,包括加法函数的测试案例,以及如何使用断言。此外,还介绍了Mocha的测试用例钩子和如何运行测试。
摘要由CSDN通过智能技术生成

 

上篇简单介绍了下前端单元测试的背景;以及主要的框架断言库的选择;
本文以mocha+chai为主简单介绍下单元测试的入门

简介

Mocha 是具有丰富特性的 JavaScript 测试框架,可以运行在 Node.js 和浏览器中,使得异步测试更简单更有趣。Mocha 可以持续运行测试,支持灵活又准确的报告,当映射到未捕获异常时转到正确的测试示例。

Chai 是一个针对 Node.js 和浏览器的行为驱动测试和测试驱动测试的断言库,可与任何 JavaScript 测试框架集成。

安装

npm install -g mocha            npm install chai

测试脚本

下面是一个加法add.js的代码。

// add.js
function add(x, y) {
  return x + y;
}
module.exports = add;

默认命名方法:测试脚本与被测试的源码脚本同名,但是后缀名为.test.js(表示测试)或者.spec.js(表示规格)。比如,add.js的测试脚本名字就是add.test.js。

// add.test.js
let add = require('./add.js');
let expect = require('chai').expect;

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

断言库的使用:

所有的测试用例(it块)都应该含有一句或多句的断言。它是编写测试用例的关键。断言功能由断言库来实现,Mocha本身不带断言库,所以必须先引入断言库。

let expect = require('chai').expect;

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

 测试用例的钩子 

describe('add', function() {

    before(function() {
        // 在本区块的所有测试用例之前执行
    });

    after(function() {
        // 在本区块的所有测试用例之后执行
    });

    beforeEach(function() {
        // 在本区块的每个测试用例之前执行
    });

    afterEach(function() {
        // 在本区块的每个测试用例之后执行
    });

    // test cases
});

Mocha的基本用法 
有了测试脚本以后,就可以用Mocha运行它;执行下面的命令。

$ mocha add.test.js
  加法函数的测试
    ✓ 1 加 1 应该等于 2

  1 passing (8ms)

Mocha默认运行test子目录里面的测试脚本---(Mocha默认只执行test子目录下面第一层的测试用例,不会执行更下层的用例)

在package.json中配置test也可以直接运行npm  run  test

"scripts": {
  "dev": "node build/dev-server.js",
  "build:prod": "rm -rf ./dist && cross-env NODE_ENV=production env_config=prod node build/build.js",
  "build:sit": "cross-env NODE_ENV=production env_config=sit node build/build.js",
  "build:sit-preview": "cross-env NODE_ENV=production",
  "lint": "eslint",
  "test": "mocha --compilers js:babel-core/register"
},

chai使用------https://blog.csdn.net/chjj0904/article/details/84566961

chai-http使用----https://www.javascriptcn.com/read-46323.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值