Chai.js expect 语法中的 to.include
和 to.not.include
详解
Chai.js 是一个流行的 JavaScript 测试框架,它提供了许多有用的断言库,其中包括 expect 语法。在 expect 语法中,to.include
和 to.not.include
是两个非常有用的断言,它们可以用于判断一个对象或字符串是否包含某个值。在本篇文章中,我们将详细讲解这两个断言的语法和使用方法,并提供一些示例代码来帮助您学习和应用这些断言。
to.include
语法
to.include
语法的作用是判断一个数组、字符串或对象是否包含指定的元素或属性。该语法通常和 expect 一起使用,例如:
expect([1, 2, 3]).to.include(2); expect('hello world').to.include('world'); expect({ name: 'Tom', age: 18 }).to.include.all.keys('name', 'age');
上述代码分别判断了一个数字数组、一个字符串和一个对象是否包含指定的元素或属性。其中,to.include(2)
判断数组 [1, 2, 3]
是否包含元素 2,to.include('world')
判断字符串 'hello world'
是否包含子串 'world'
,to.include.all.keys('name', 'age')
判断对象 { name: 'Tom', age: 18 }
是否包含 name
和 age
两个属性。
此外,to.include
还可以和 deep
、members
等修饰符一起使用,例如:
expect([{ name: 'Tom', age: 18 }, { name: 'Jerry', age: 20 }]) .to.include.deep.equal([{ name: 'Tom', age: 18 }, { name: 'Jerry', age: 20 }]); expect([{ name: 'Tom', age: 18 }, { name: 'Jerry', age: 20 }]) .to.include.members([{ name: 'Tom', age: 18 }]);
第一个断言判断一个包含两个对象的数组是否包含另一个相同的数组,需要使用 deep
修饰符来比较数组的每一个元素。第二个断言判断一个包含两个对象的数组是否包含其中的一个对象,需要使用 members
修饰符来比较数组的每一个元素是否包含指定对象。
to.not.include
语法
与 to.include
相反,to.not.include
语法的作用是判断一个数组、字符串或对象是否不包含指定的元素或属性。该语法通常和 expect 一起使用,例如:
expect([1, 2, 3]).to.not.include(0); expect('hello world').to.not.include('hi'); expect({ name: 'Tom', age: 18 }).to.not.include.property('gender');
上述代码分别判断了一个数字数组、一个字符串和一个对象是否不包含指定的元素或属性。其中,to.not.include(0)
判断数组 [1, 2, 3]
是否不包含元素 0,to.not.include('hi')
判断字符串 'hello world'
是否不包含子串 'hi'
,to.not.include.property('gender')
判断对象 { name: 'Tom', age: 18 }
是否不包含属性 gender
。
与 to.include
相似,to.not.include
也可以和 deep
、members
等修饰符一起使用,例如:
expect([{ name: 'Tom', age: 18 }, { name: 'Jerry', age: 20 }]) .to.not.include.deep.equal([{ name: 'Jerry', age: 20 }, { name: 'Tom', age: 18 }]); expect([{ name: 'Tom', age: 18 }, { name: 'Jerry', age: 20 }]) .to.not.include.members([{ name: 'Jerry', age: 20 }, { name: 'Tom', age: 18 }]);
这两个示例分别使用了 deep
和 members
修饰符,分别判断一个包含两个对象的数组是否不包含指定的数组或对象。
- 总结
在本文中,我们详细介绍了 to.include
和 to.not.include
两个 Chai.js expect 语法的使用方法和示例代码。这两个断言可以用于判断一个数组、字符串或对象是否包含或不包含指定的元素或属性,非常实用。在实际的前端开发工作中,这些断言可以帮助我们写出更加高效、准确的测试用例,保障代码的质量和稳定性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64ca4dbb5ad90b6d041a708f