匹配器
名称 | 测试项 | 备注 |
---|---|---|
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');
});
});