Chai.js expect 语法中的 to.throw
详解
在前端开发中,测试是非常重要的,而 Chai.js 是一种广泛使用的测试框架之一。Chai.js 的 expect 语法是其中最常用的语法之一,其中 to.throw
语法允许我们检查代码是否抛出所预期的异常。本文将介绍这个语法如何使用,以及如何更好地利用它来测试前端代码。
基础
在开始学习 to.throw
之前,我们首先需要了解 try...catch
机制。try
语句允许我们在执行代码前设置一个异常处理程序,当异常被抛出后,控制流将转移到 catch
语句中。下面是一个简单的例子:
--- - -- ---- ---- ---- --- ----- -- ----- - ----- ------- - -- ------ --- ----- -
在上面的代码中,try
语句中的代码可能会抛出一个异常,如果出现异常,则会跳过 try
语句中的代码并转到 catch
语句中,其中可以处理异常。
现在让我们来看一下 Chai.js 中的 to.throw
语法。该语法基本上是一个检查某些代码是否抛出所预期异常的断言。它的基本语法为:
-----------------------------
其中 fn
是需要测试的代码块,[error]
是可选的错误类型或错误消息。如果代码块没有抛出异常,则断言失败。
如果 error
参数是一个字符串,则它将与抛出的异常对象的 message 属性进行比较。如果 error
是一个函数,则它将与抛出的异常对象进行比较,可以检查异常的类型等属性。
举个例子:
-------- ------------ - ----- --- ---------------- ---- --------- - -------------------------------------- ---- ---------
在上面的例子中,我们创建了一个函数 throwError()
,它会抛出一个 Error
异常,并包含错误消息 "Something went wrong!"。然后使用 expect
语法来检查这个函数是否抛出了我们期望的异常。
如果我们不想检查错误消息,只想检查抛出的异常类型,可以使用如下的语法:
-------- ------------ - ----- --- ------------ - ---------------------------------------
在这个例子中,我们抛出了一个具有 TypeError
类型的异常,然后使用 expect
语法来检查它是否抛出了期望的异常类型。
使用 to.throw 检查异步代码
to.throw
对于检查异步代码中的异常也是非常有用的。考虑以下示例:
----- -------- ----------- - ----- -------- - ----- -------------------------------------- ----- ---- - ----- ---------------- -- ------- - ----- --- ------------- -- ----- -------- - ------ ----- - ---------- ----- -- ----- -- ---- -------- ------- ----- -- -- - ----- ----------------------------- ---
在上面的代码中,我们使用 await
关键字来等待异步代码块执行,然后使用 expect
语法检查是否抛出了异常。注意,我们没有指定任何特定的错误类型或错误消息,这意味着我们只关心代码块是否抛出了任何异常。
结论
在本文中,我们介绍了 Chai.js expect 语法中的 to.throw
语法,该语法允许我们检查代码是否抛出了所预期的异常。我们使用示例代码说明了该语法的基本用法,包括检查错误类型和错误消息,并讨论了如何使用该语法检查异步代码中的异常。在编写测试代码时,使用这些知识可以帮助我们更好地测试前端代码。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6710813f5f551281026ba34a