jest单元测试

npm install jest -D // 安装测试框架

npm run test
或者在package.json配置,响应式测试:
“scripts”: {
“test”: “jest --watchAll”,
}

Jest中常用的匹配器

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'
})

你可能感兴趣的:(js学习,vue学习)