在前端的开发过程中,单元测试是必不可少的一部分。而在测试过程中,为了判断一些特定的值是否存在于数据中,我们常常需要使用 expect
断言库中的 to.contain
和 to.include
方法。下面,我们就来详解和使用这两个方法。
expect.to.contain 方法
expect.to.contain
可以用于判断某个值是否在数组中出现过,其用法如下:
---------- -- ------------------
如果数组包含指定的值,则返回 true
,否则返回 false
。
另外,我们也可以给 to.contain
传入一个正则表达式。例如:
------------- ----------------------------
此时,如果字符串中包含了指定的正则表达式,则返回 true
,否则返回 false
。
expect.to.include 方法
expect.to.include
和 expect.to.contain
的作用类似,它也可以用来判断某个值是否在数组中出现过,其用法如下:
---------- -- ------------------
如果数组包含指定的值,则返回 true
,否则返回 false
。
另外,我们也可以给 to.include
传入一个正则表达式。例如:
------------- ----------------------------
此时,如果字符串中包含了指定的正则表达式,则返回 true
,否则返回 false
。
与 to.contain
不同的是,to.include
可以用于判断对象是否包含某个属性。例如:
---------- -- -- ------------------------
此时,如果对象包含指定的属性,则返回 true
,否则返回 false
。
使用实例
下面,我们来举几个使用实例,以帮助大家更好地理解和使用这两个方法。
示例1:判断字符串中是否包含指定的词汇
----- -------- - ---- ----- ----- --- ----- ---- --- ---- ------ ----------------------------------- -------------------------------------
这段代码首先定义了一个字符串 sentence
,然后使用 expect.to.contain
方法来判断字符串中是否包含了 'fox' 和一个名为 'brown' 的正则表达式。如果包含,则测试通过,否则测试失败。
示例2:判断数组是否包含指定的元素
----- --- - --- -- -- --- -------------------------- ------------------------------
这个例子首先定义了一个数组 arr
,然后使用 expect.to.include
方法来判断数组中是否包含了 2,同时使用 expect.to.not.include
来判断数组中是否不包含 5。如果包含或不包含的判断结果都正确,则测试通过,否则测试失败。
示例3:判断对象是否包含指定的属性
----- ------ - ------ ------- ---- --- -------- ------- -------------------------------------- ------- ---------------------------------------------
这个例子首先定义了一个对象 person
,然后使用 expect.to.include.key
方法来判断对象中是否包含了 'name' 和 'age' 两个属性,同时使用 expect.to.not.include.key
来判断对象中是否不包含 'gender' 属性。如果包含或不包含的判断结果都正确,则测试通过,否则测试失败。
总结
expect.to.contain
和 expect.to.include
方法是 chai
断言库中很实用的方法,它们可以帮助我们判断某个值或属性是否在数组或对象中出现过,从而进行测试。当我们编写前端的单元测试时,不妨考虑使用这两个方法,以提高测试的效率和准确性。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/6538711f7d4982a6eb13d08d