Jest 是一个流行的 JavaScript 测试框架,它内置了断言库,可以方便地进行测试。本文将介绍 Jest 断言库的使用方法,以及常见的断言示例,帮助前端开发者更好地了解和使用 Jest。
Jest 断言库的基本使用
Jest 断言库的基本语法如下:
test('测试名称', () => { // 断言语句 expect(实际值).toBe(期望值); });
其中,test
函数用于定义测试用例的名称和测试函数,expect
函数用于断言实际值是否等于期望值。如果实际值等于期望值,则测试通过,否则测试失败。
下面是一个简单的示例:
test('1 + 1 等于 2', () => { expect(1 + 1).toBe(2); });
在命令行中执行 npm test
命令,即可运行测试用例,输出测试结果。
常见的断言示例
toBe
toBe
断言用于判断两个值是否相等,包括类型和值。示例代码如下:
// javascriptcn.com 代码示例 test('1 + 1 等于 2', () => { expect(1 + 1).toBe(2); }); test('1 + 1 不等于 3', () => { expect(1 + 1).not.toBe(3); }); test('NaN 不等于 NaN', () => { expect(NaN).not.toBe(NaN); }); test('对象相等', () => { const obj1 = { a: 1 }; const obj2 = { a: 1 }; expect(obj1).not.toBe(obj2); // 对象不相等 expect(obj1).toEqual(obj2); // 对象相等 });
toBeNull、toBeUndefined、toBeDefined
toBeNull
断言用于判断一个值是否为 null
,toBeUndefined
断言用于判断一个值是否为 undefined
,toBeDefined
断言用于判断一个值是否已定义。示例代码如下:
// javascriptcn.com 代码示例 test('变量已定义', () => { const a = 1; expect(a).toBeDefined(); }); test('变量未定义', () => { const a = undefined; expect(a).toBeUndefined(); }); test('变量为 null', () => { const a = null; expect(a).toBeNull(); });
toBeTruthy、toBeFalsy
toBeTruthy
断言用于判断一个值是否为真值,toBeFalsy
断言用于判断一个值是否为假值。示例代码如下:
// javascriptcn.com 代码示例 test('字符串为真值', () => { expect('hello').toBeTruthy(); }); test('数字为真值', () => { expect(1).toBeTruthy(); }); test('空字符串为假值', () => { expect('').toBeFalsy(); }); test('0 为假值', () => { expect(0).toBeFalsy(); });
toBeGreaterThan、toBeLessThan、toBeGreaterThanOrEqual、toBeLessThanOrEqual
toBeGreaterThan
断言用于判断一个值是否大于另一个值,toBeLessThan
断言用于判断一个值是否小于另一个值,toBeGreaterThanOrEqual
断言用于判断一个值是否大于等于另一个值,toBeLessThanOrEqual
断言用于判断一个值是否小于等于另一个值。示例代码如下:
// javascriptcn.com 代码示例 test('1 大于 0', () => { expect(1).toBeGreaterThan(0); }); test('0 小于 1', () => { expect(0).toBeLessThan(1); }); test('1 大于等于 1', () => { expect(1).toBeGreaterThanOrEqual(1); }); test('1 小于等于 1', () => { expect(1).toBeLessThanOrEqual(1); });
toContain
toContain
断言用于判断一个数组或字符串是否包含某个元素或子串。示例代码如下:
// javascriptcn.com 代码示例 test('数组包含元素', () => { const arr = [1, 2, 3]; expect(arr).toContain(2); }); test('字符串包含子串', () => { const str = 'hello world'; expect(str).toContain('world'); });
toThrow
toThrow
断言用于判断一个函数是否抛出异常。示例代码如下:
test('函数抛出异常', () => { function throwError() { throw new Error('error'); } expect(throwError).toThrow(); });
总结
本文介绍了 Jest 断言库的基本使用方法,以及常见的断言示例。通过学习本文,读者可以更好地理解 Jest 断言库的使用,加深对前端测试的理解。在实际开发中,建议开发者结合具体业务场景,选择合适的断言方法进行测试,提高代码的质量和稳定性。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/656d9ff3d2f5e1655d5de234