组成

一个单元测试的形成应该是
测试框架+断言库+其余辅助的库
所以要装置依赖的时候,也是要抉择下载对应的模块,起码都要两个,一个测试框架+一个断言库

测试框架

jest,mocha,这两个都是,我贴一下网上查到的这两个都写法差异

例子:
sum函数

function sum(a, b) {  return a + b;}

Jest写法(自带断言库)

const sum = require('./sum');describe('sum function test', () => {  // 官网默认写法  test('should be 3', () => {    expect(sum(1, 2)).toBe(3);  });})

mocha写法(内部断言库Chai)

const {expect, assert} = require('chai');const sum = require('./sum');describe('sum function test', () => {  // BDD 形式  it('should be 3 using expect', () => {    expect(sum(1, 2)).to.equal(3);  });  // TDD 形式  it('should be 3 using assert', () => {    assert.equal(sum(1, 2), 3);  });});

具体细节我没去深究,就看这个例子,这两个不同的是一个用test,一个是用it,还有jest是自带断言库,mocha是要另外装置一个依赖实现

断言库

断言指的是下面代码外面,那些to.be,to.equal,to.not.be这种,拿这个mocha举例子

const {expect, assert} = require('chai');const sum = require('./sum');describe('sum function test', () => { // 这些是测试框架的语法  // BDD 形式  it('should be 3 using expect', () => { // 这些是测试框架的语法    expect(sum(1, 2)).to.equal(3); // 这里是断言库语法  });  // TDD 形式  it('should be 3 using assert', () => { // 这些是测试框架的语法    assert.equal(sum(1, 2), 3); // 这里是断言库语法  });});

chai就是其中一个断言库,其余的话我百度找不到相似的,就不比拟了,晓得意思就好

辅助库

这个辅助库是我本人的了解,是依据我当初写的单元测试用到的,比方

sinon

我用到它的一个性能,就是判断这个点击事件是否真的执行了

// 点击事件  it('click', () => {    const f = sinon.spy()    wrapper = mount(Button, {      listeners: {        click: f      }    })    wrapper.trigger('click')    expect(f.called).to.be.ok  })

karma

这个百度的材料,它是帮忙测试后果能够在浏览器跑起来,比方用mocha+chai的时候,你运行的时候,它是在node跑的,也就是说是在终端那里输入后果,没有在浏览器输入

如果想要在浏览器console那里输入,就要用到它,当然它的性能并不是只是输入这么简略,它还能让测试用例在浏览器跑,不同的浏览器跑测兼容,然而我没有用到,所以不晓得 = =