npm install jest -D // 安装测试框架
npm run test
或者在package.json配置,响应式测试:
“scripts”: {
“test”: “jest --watchAll”,
}
toBe()匹配器:
toBe匹配器用来比较原始值或检查对象实例的引用一致性,类似于 ‘Object.is’ 方法和 ‘===’.
// toBe匹配器
test('测试 结果是否等于 "abc"', () => {
const a = 'abc';
expect(a).toBe('abc');
})
toEqual()匹配器:
用来匹配内容是否相等,会递归的检查对象的所有属性和属性值是否相等。(如对象内容是否相等)
// 使用toEqual匹配器测试对象内容是否相等
test('测试对象内容是否相等', () => {
const a = { b: 1 };
expect(a).toEqual({ b: 1 });
})
toHaveLength(number)匹配器
匹配对象的长度是否为指定值。
//toHaveLength(number)
const arr = [1, 2, 3];
test('测试 arr数组的长度 是否为3', () => {
expect(arr).toHaveLength(3);
})
toBeNull匹配器
匹配某些内容是否为null值。
// toBeNull匹配器
const val = null;
test('测试 null 是否为 空', () => {
expect(val).toBeNull();
})
toBeUndefined匹配器
检测一个结果是undefined。
// toBeUndefined匹配器
const val = undefined;
test('测试 结果 是否为 undefined', () => {
expect(val).toBeUndefined();
})
toBeDefined匹配器
检查一个结果不是undefined。
// toBeDefined匹配器
const val = 1; // 或者 val = null 也可通过测试
test('测试 结果 是否为 undefined', () => {
expect(val).toBeDefined();
})
toBeTruthy匹配器
检测结果是否为true。
// toBeTruthy匹配器
const val = 1;
test('测试 结果 是否为 true', () => {
expect(val).toBeTruthy();
})
toBeFalsy匹配器
检测结果是否为false。
// toBeFalsy匹配器
const val = 0;
test('测试 结果 是否为 false', () => {
expect(val).toBeFalsy();
})
not匹配器
// not匹配器
const val = 1;
test('测试 结果 是否不为 false', () => {
expect(val).not.toBeFalsy();
})
toBeGreaterThan(number) 匹配器
检测某个浮点数的结果是否大于指定浮点数。
// .toBeGreaterThan(number) 匹配器
const val = 4;
test('测试 结果 是否大于 指定浮点数', () => {
expect(val).toBeGreaterThan(3);
})
toBeGreaterThanOrEqual(number)匹配器
检测某个浮点数的结果是否大于等于指定浮点数。
// .toBeGreaterThanOrEqual(number)匹配器
const val = 3;
test('测试 结果 是否大于等于 指定浮点数', () => {
expect(val).toBeGreaterThanOrEqual(3);
})
toBeLessThan(number) 匹配器
检测某个浮点数的结果是否小于指定浮点数。
// .toBeLessThan(number) 匹配器
const val = 2;
test('测试 结果 是否小于 指定浮点数', () => {
expect(val).toBeLessThan(3);
})
toBeLessThanOrEqual(number) 匹配器
检测某个浮点数的结果是否小于等于指定浮点数。
// .toBeLessThanOrEqual(number)
const val = 3;
test('测试 结果 是否大于等于 指定浮点数', () => {
expect(val).toBeLessThanOrEqual(3);
})
toBeCloseTo(number) 匹配器
检测浮点数运算结果的精确值是否等于指定的浮点数。
// toBeCloseTo(number)
const a = 0.2;
const b = 0.1;
test('测试 0.1+0.2 是否等于 0.3', () => {
expect(a + b).toBeCloseTo(0.3);
})
在js中运算0.1+0.2实际结果为0.30000000000000004,若想取得正常运算结果比较,可使用toBeCloseTo匹配器。
toMatch(str) 匹配器
// toMatch(str)
const val = 'abcdefg';
test('测试 0.1+0.2 是否等于 0.3', () => {
expect(val).toMatch('ab');
})
toContain(str) 匹配器
// toContain(str)
const arr = ['a', 'b', 'c'];
const data = new Set(arr); // Set
test('测试 数组arr中 是否包含 "a"元素', () => {
expect(arr).toContain('a');
// expect(data).toContain('a'); //对Set同样生效
})
toThrow() 匹配器
检测函数是否抛出异常。也可以传入字符串参数,匹配抛出异常的内容。
// 异常
const throwNewErrorFunc = () => {
throw new Error('this is new error')
}
test('测试 函数是否抛出异常', () => {
expect(throwNewErrorFunc).toThrow();
//expect(throwNewErrorFunc).toThrow('this is new error'); // 匹配抛出异常是否为'this is new error'
})