使用匹配器
非官方测试版翻译
本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →
Jest 使用"匹配器"让你以不同方式验证值。本文档将介绍一些常用匹配器。完整列表请查阅 expect API 文档。
常用匹配器
最简单的测试方法是精确相等验证。
test('two plus two is four', () => {
expect(2 + 2).toBe(4);
});
在这段代码中,expect(2 + 2) 返回一个"期望值对象"。通常你不会直接操作这个对象,而是在它上面调用匹配器方法。这里 .toBe(4) 就是匹配器。Jest 运行时将跟踪所有失败的匹配器,以便为你输出清晰的错误信息。
toBe 使用 Object.is 检测精确相等。如需验证对象值,请使用 toEqual:
test('object assignment', () => {
const data = {one: 1};
data['two'] = 2;
expect(data).toEqual({one: 1, two: 2});
});
toEqual 会递归检查对象或数组的每个字段。
技巧
toEqual 会忽略包含 undefined 属性的对象键、undefined 数组元素、数组空位或对象类型差异。如需考虑这些情况,请改用 toStrictEqual。
你还可以使用 not 测试匹配器的相反情况:
test('adding positive numbers is not zero', () => {
for (let a = 1; a < 10; a++) {
for (let b = 1; b < 10; b++) {
expect(a + b).not.toBe(0);
}
}
});