什么是 Jest?
Jest 是一个 Facebook 开源的 JavaScript 测试框架,它可以帮助开发人员进行自动化测试。不同于其他测试框架,Jest 最显著的特点是它的速度和易用性。它内置有测试框架所需的所有库和依赖项,无需任何其他扩展。
什么是 Matchers?
Matchers 是 Jest 测试框架中用来判断测试结果是否符合预期的类。Matcher 是一个工具函数,接收一个期望值和实际值,用来判断它们是否相等或是否符合特定的条件。Jest 已经提供了很多常见的 Matchers,比如 toBe
、toEqual
、toContain
等等。
如何使用自定义 Matchers?
Jest 允许开发人员自定义 Matchers,以满足特定的测试需求。可以使用 expect.extend
方法对 Jest 进行扩展,以添加对自定义 Matchers 的支持。这个方法接受一个对象作为参数,这个对象包含自定义 Matchers。
下面是一个简单的例子,用于演示如何自定义 Matcher:
-- -------------------- ---- ------- --------------- ------------------------ - ----- ----- - ------------------------------ ----- ---- - --------------------- -- ------ - ------ - -------- -- -- --------- ----------- --- -- -- - ----- ------- ----- ----- -- - ---- - ------ - -------- -- -- --------- ----------- -- -- - ----- ------- ----- ------ -- - -- ---
这个例子定义了一个叫做 toBeValidEmail
的 Matcher。这个 Matcher 接受一个字符串作为输入,然后使用正则表达式来验证这个字符串是否符合 email 的格式。如果符合,则测试通过,否则测试失败。
注意到返回值是一个对象,这个对象包含两个字段:message
和 pass
。其中 message
是一个函数,返回一个字符串,用于描述测试结果;pass
是一个布尔值,表示测试是否通过。
示例代码
describe('custom matcher test', () => { it('test toBeValidEmail Matcher', () => { expect('example@example.com').toBeValidEmail(); }); });
执行上面的测试,如果符合 email 的格式,则测试通过。
总结
自定义 Matchers 是 Jest 测试框架中一个强大的功能,可以帮助开发人员轻松地扩展 Jest 的测试能力。在实际使用中,可以根据自己的需求来定义适合自己的 Matchers。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64fe678a95b1f8cacdd2fa8c