Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jest数组断言:预期中的任何值都是实际值_Javascript_Jestjs - Fatal编程技术网

Javascript Jest数组断言:预期中的任何值都是实际值

Javascript Jest数组断言:预期中的任何值都是实际值,javascript,jestjs,Javascript,Jestjs,假设我正在使用Jest对相同类型的两个数组进行断言,将它们分别称为actual和expected。使用arrayContaining匹配器,很容易测试expected中的所有元素是否都在actual中: test('预期中的所有元素都是实际的',()=>{ 常量实际值=[1,2,3,4,5,6] 常数willPass=[2,3,4] const willFail=[5,6,7] expect(实际).toEqual(expect.arrayContaining(willPass)) expect

假设我正在使用Jest对相同类型的两个数组进行断言,将它们分别称为
actual
expected
。使用
arrayContaining
匹配器,很容易测试
expected
中的所有元素是否都在
actual
中:

test('预期中的所有元素都是实际的',()=>{
常量实际值=[1,2,3,4,5,6]
常数willPass=[2,3,4]
const willFail=[5,6,7]
expect(实际).toEqual(expect.arrayContaining(willPass))
expect(实际).toEqual(expect.arrayContaining(willFail))
});
相反,任何in
expected
都不是in
actual
,只需要
NOT
修饰符

然而,我似乎找不到正确的方法在“预期中的任何内容都是实际的”场景中使用此匹配器。当然,我可以使用原始JS评估来创建断言:

expect(willPass.some(v=>actual.includes(v)).toBe(true)
但这样做意味着生成的失败消息是非常通用的(预期为true,收到的为false,没有多大帮助)


有没有一种方法可以使用Jest的matchers测试
expected
中的任何元素是否在
actual
中?

正如Jornsharpe在一篇评论中指出的那样,尽管Jest没有针对任何情况的本机断言,但社区维护一个名为,它有一个名为的断言。

jest extended
是从顶部链接的:一般来说,如果您想要其他地方不支持的匹配,您可以扩展
expect
,正如我在中所示。啊,我发现我完全错过了文档中建议jest extended的句子!感谢您指出,它似乎有我想要的: