Jest 是一款基于 JavaScript 的自动化测试框架,具有开箱即用的特点,因此受到越来越多前端开发者的青睐。Jest 提供了丰富的 API,其中最重要的就是断言库,而其中的 expect、toBe、toHaveBeenCalled 这些方法则是开发者使用较多的方法之一。本文将详细解释这三个方法的使用方法和实例。
expect 方法
expect 方法是 Jest 断言库里最重要的方法之一,它提供了断言的入口,可用于创建一个期望值并与实际值进行比较。使用 expect 方法时,需要传入被测试的变量或者表达式作为参数,可以是一个原始值,也可以是一个对象或者函数。
举个例子:
test('测试变量等于 5', () => { const a = 5; expect(a).toBe(5); });
上述代码中,我们使用 expect 方法来测试变量 a 是否等于 5。toBe 方法则用于判断值是否相等。如果不相等则会抛出错误,从而让测试用例失败。
toBe 方法
toBe 方法是 Jest 的一个断言方法,用于比较两个值是否相等。也就是说,toBe 用于判断两个值是否引用同一个对象,而不是它们的值是否相等。
举个例子:
test('测试5是否等于5', () => { expect(5).toBe(5); });
上述代码中,我们使用 toBe 方法测试 5 是否等于 5。如果不通过,会抛出错误并打印出实际值和期望值。
toEqual 方法
toEqual 方法也是一个 Jest 的断言方法,用来比较两个对象的值是否相等。与 toBe 方法不同,toEqual 方法判断的是值是否相等,而不是引用是否相等。
举个例子:
-- -------------------- ---- ------- ---------------- -- -- - ----- ---- - - -- -- -- - -- ----- ---- - - -- -- -- - -- --------------------------- ---
上述代码中,我们使用 toEqual 方法比较两个对象的属性是否相同。因为这两个对象的属性值相同,所以测试用例会通过。
toBeNull 方法
toBeNull 方法用于判断某个值是否为 null。
test('null 判断', () => { const a = null; expect(a).toBeNull(); });
上述代码中,我们使用 toBeNull 方法判断变量 a 是否为 null。如果不是 null,则会抛出错误。
toBeTruthy 和 toBeFalsy 方法
toBeTruthy 方法用于判断某个值是否为真值,而 toBeFalsy 方法用于判断某个值是否为假值。
test('Truthiness 判断', () => { const a = 'Hello World'; expect(a).toBeTruthy(); const b = ''; expect(b).toBeFalsy(); });
上述代码中,我们使用 toBeTruthy 方法判断变量 a 是否为真值,使用 toBeFalsy 方法判断变量 b 是否为假值。如果不符合期望,则会抛出错误。
toHaveBeenCalled 方法
toHaveBeenCalled 方法用于判断一个函数是否被调用过,如果被调用过,则测试用例通过。
举个例子:
test('测试 add 函数是否被调用', () => { const add = jest.fn(); add(1, 2); expect(add).toHaveBeenCalled(); });
上述代码中,我们使用 toHaveBeenCalled 方法测试 add 函数是否被调用过。此处使用了 jest.fn() 来模拟一个函数。
总结
在本篇文章中,我们对 Jest 断言库中的 expect、toBe、toHaveBeenCalled 方法进行了详细解释,并给出了相应的实例代码。希望读者能够通过本文的介绍和实践,掌握 Jest 断言库的应用,并在开发过程中灵活运用这些方法来写出高质量的测试用例。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6656a244d3423812e4b7e89d