Skip to main content

Jest快速入门

Jest快速入门

书写需要测试的工具方法:

exports.sum = function(a, b){
return a + b + 1;
}

exports.sub = function(a, b){
return a - b;
}

exports.mul = function(a, b){
return a * b;
}

exports.div = function(a, b){
return a / b;
}

安装jest,通过命令

npm install --save-dev jest

创建测试文件,tool.test.js,安装了jest之后,会提供一些全局的方法或者对象,例如testexpectjest,这些方法或者对象不需要导入,直接在测试文件中使用即可:

const { sum, sub, mul } = require('./tool')

test('test sum function', () => {
const result = sum(1, 2)
expect(result).toBe(3)
})

it('test sub function', () => {
const result = sub(1, 2)
expect(result).toBe(-1)
})

it('test mul function', () => {
expect(mul(10, 10)).toBe(100)
})

it方式实际上是test方法的别名。

上面的示例中,将所有的方法的测试可以写在一个测试用例中,也可以书写多个测试用例,那么真实的工具库应该如何书写呢?

实际上,最好的方式是一个工具函数对应一个测试套件,每一个测试套件里面根据函数的参数来书写测试用例,一个参数对应一个测试用例。

测试用例分组

在一个测试套件中,可以针对不同的测试用例进行分组。分组使用describe方法,该方式是全局方法,无需导入:

describe(description, callback)

示例如下:

const { 
sum,
sub,
mul,
div
} = require('./tool')

describe('testing sum and sub', () => {
test('test sum function', () => {
const result = sum(1, 2)
expect(result).toBe(3)
})

it('test sub function', () => {
const result = sub(1, 2)
expect(result).toBe(-1)
})
})

describe('testing mul and div', () => {
test('test mul function', () => {
const result = mul(1, 2)
expect(result).toBe(2)
})

it('test sub function', () => {
const result = div(1, 2)
expect(result).toBe(0.5)
})
})
``