如何使用 Jest 测试一个数组是否包含另一个数组中的任何值?

fos*_*owe 2 javascript jestjs

我有一个数组:

   Const domesticAnimals = ['Chicken','lama','Donkey']
   Const wildAnimals =['lama','lion','elephant']
Run Code Online (Sandbox Code Playgroud)

如何测试数组wildAnimals 中是否列出了任何内容domesticAnimals

我努力了

test('test If any wild animal is in the domestic animal list', async() =>{
expect(domesticAnimals ).toContain('lama')
}) //works perfectly

test('test If any wild animal is in the domestic animal list', async() =>{
expect(domesticAnimals ).toContain(wildAnimals) // does not work
})
Run Code Online (Sandbox Code Playgroud)

Cod*_*ist 5

你实际上有两个数组:

const domesticAnimals = ['Chicken','lama','Donkey'];
const wildAnimals =['lama','lion','elephant'];
Run Code Online (Sandbox Code Playgroud)

测试一个数组是否包含另一个数组中的任何值的简单 JS 方法是:

domesticAnimals.some(domesticAnimal => wildAnimals.includes(domesticAnimal));
Run Code Online (Sandbox Code Playgroud)

因此,要对此进行测试,将是:

test('test If any wild animal is in the domestic animal list', () =>{
    expect(domesticAnimals.some(
        domesticAnimal => wildAnimals.includes(domesticAnimal)
    )).toBe(true);
});
Run Code Online (Sandbox Code Playgroud)

作为旁注,您将测试函数标记为async但实际上没有await任何内容,因此这async是多余的。