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之后,会提供一些全局的方法或者对象,例如test、expect、jest,这些方法或者对象不需要导入,直接在测试文件中使用即可:
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)
})
})
``