问题描述
在使用 Chai 进行单元测试的过程中,您可能会遇到以下错误:
--------------- -------- ------- -- ----- -----
这是因为在比较值时,Chai 默认使用全等操作符(===),而在此过程中,对于包装类型与其对应的基本类型的比较,将会出现该错误。
解决方法
使用某些 Chai 断言
在 Chai 中,有许多种不同的断言可供您选择。其中,一些断言在比较值时不会使用全等操作符,而是会尝试将包装类型与基本类型进行比较,从而解决上述问题。
----- - ------ - - ---------------- ------------------- -- -- - --------- --- ------- -- -- - ------------------------------ --- ------- -------------- --- ------- -- -- - ---------- ------------------------------------ --- ------- -------------- -- ------- -- -- - ---------- -------------------------------- --- ---
这个例子中,可以看到我们在比较 new Boolean(false)
时使用了不同的断言,导致用全等操作符获得的错误结果被成功避免。
使用 .valueOf() 方法
如果您希望使用默认的全等操作符进行比较,那么您可以手动调用包装类型的 .valueOf()
方法,将包装类型转化为基本类型。如下所示:
----- - ------ - - ---------------- ------------------- -- -- - --------- --- ------- -- -- - ------------------------------ --- ------- ------------------------ --- ------- -- -- - ---------- ------------------------------------------ --- ---
在上面的例子中,我们使用 .valueOf()
方法将包装类型转换为基本类型,并完成了比较。
结论
在使用 Chai 进行单元测试时,遇到 AssertionError: expected 'false' to equal false
错误的问题,经常是由于包装类型与基本类型的比较导致的。为了解决这个问题,有几种方法可以采用,包括使用某些特定的 Chai 断言或者手动调用 .valueOf()
方法。我们希望这篇文章能够对您的工作有所帮助,并能够更好地使用 Chai 进行前端开发。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/672f1a4eeedcc8a97c8c9609