Chai 的 “expect” 断言与 “should” 断言的区别及使用场景

Chai 是一个流行的 JavaScript 测试库,它支持多种测试风格和断言方式。其中比较常用的是 “expect” 断言和 “should” 断言。

区别

1. 语法

在测试代码中,使用 “expect” 断言的语法是这样的:

-------------------------------

而使用 “should” 断言的语法稍有不同:

---------------------------

2. 报错信息

如果测试不通过, “expect” 断言会返回一个错误对象,它包含有关测试失败的详细信息。例如:

-------- - ------------------
-- ---
-- --------------- -------- - -- ----- -

而 “should” 断言的错误信息通常不太详细。它只会抛出一个简单的错误信息,例如:

-- - ----------------------
-- ---
-- --------------- -------- - -- ----- -

总体来说,“expect” 断言的错误信息更加详细和有用。

3. 可链式调用

在使用 “should” 断言时,可以通过链式调用多个断言来进行验证。例如:

----- --- - --- -- ---
-------------------------------------------

而 “expect” 断言则需要使用多个断言来实现相同的功能:

----- --- - --- -- ---
--------------------------------
--------------------------

使用场景

1. “expect” 断言

“expect” 断言适合于需要进行复杂断言的测试场景。例如,如果需要检查一个对象是否包含某个属性、是否具有某个方法等等,则使用 “expect” 断言是明智的选择。

----- ------ - -
  ----- --------
  ---- ---
  -------- -
    ----- ----------
  --
  ---------- -
    ------------------- -- ---- -- ----------------
  -
--

----------------------------------------
-----------------------------------------------------------
---------------------------------------------------- -----------
----------------------------------------

2. “should” 断言

“should” 断言适合于需要进行简单的、链式的测试场景。例如,如果需要检查一个数组的长度或是否包含某个元素,则使用 “should” 断言更加方便。

----- --- - --- -- ---

----------------------------
----------------------

结论

Chai 的 “expect” 断言和 “should” 断言各有优劣。根据不同的测试场景,我们可以选择合适的断言风格来编写测试代码。在编写测试时,我们应该尽可能地使用详细和有用的错误信息来帮助我们快速定位代码中存在的问题。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/672abfdfddd3a70eb6d0ac76