可以使用Jest提供的toMatchObject()方法,结合ES6中的一些数组方法,实现检测数组是否包含指定值的功能。
示例如下:
test('test if an array contains any value from another array', () => {
const arr1 = [1, 2, 3, 4];
const arr2 = [5, 6, 3, 7];
const notExistArr = [8, 9, 10];
expect(arr1.some(item => arr2.includes(item))).toBeTruthy();
expect(notExistArr.some(item => arr2.includes(item))).toBeFalsy();
expect(arr1).toMatchObject(
expect.arrayContaining(arr2)
expect(arr1).not.toMatchObject(
expect.arrayContaining(notExistArr)
首先定义两个数组arr1和arr2,以及一个不存在的数组notExistArr。
然后使用some()和includes()方法,来判断arr1和notExistArr是否包含在arr2中。
最后,使用Jest的toMatchObject()方法,对arr1和notExistArr进行检测。
其中,expect.arrayContaining()方法,用于判断一个数组是否包含另一个数组中的值。
对于第一个expect断言,我们期望arr1包含arr2中的值,并使用toBeTruthy()来判断。
对于第二个expect断言,我们期望notExistArr不包含于arr2中,并使用toBeFalsy()进行判断。