匹配器
| 名称 | 测试项 | 备注 |
|---|---|---|
| toBe | 精确匹配 | 使用Object.is |
| toEqual | 相等 | 递归检查数组每一项或对象每个字段 |
| not | 取反 | |
| toBeNull | 匹配null | |
| toBeUndefined | 匹配undefined | |
| toBeDefined | 与toBeUndefined相反 | |
| toBeTruthy | 真值 | 与if判断方式相同 |
| toBeFalsy | 假值 | 与if判断方式相同 |
| toBeGreaterThan | > | |
| toBeGreaterThanOrEqual | >= | |
| toBeLessThan | < | |
| toBeLessThanOrEqual | <= | |
| toBeCloseTo | 浮点数相等 | 不能用equal |
| toMatch | 正则表达式匹配 | |
| toContain | 数组或可迭代对象包含 | |
| toThrow | 期望抛出错误 | 参数可为字符串/正则表达式 |
测试异步代码
回调
若有一函数fetchData(callback),获取数据并调用callback。
// 错误写法test('the data is peanut butter', () => {function callback(data) {expect(data).toBe('peanut butter');}fetchData(callback);});
fetchData调用完成后,测试就结束,不会等待回调结束。
test('the data is peanut butter', done => {function callback(data) {expect(data).toBe('peanut butter');done();}fetchData(callback);});
Promise
若fetch返回Promise
test('the data is peanut butter', () => {return fetchData().then(data => {expect(data).toBe('peanut butter');});});
