Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.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 sinon-如何检查值是否在数组中?_Javascript_Unit Testing_Testing_Sinon - Fatal编程技术网

Javascript sinon-如何检查值是否在数组中?

Javascript sinon-如何检查值是否在数组中?,javascript,unit-testing,testing,sinon,Javascript,Unit Testing,Testing,Sinon,我知道我可以检查特定索引中的特定值,例如,要检查索引0处的值: sinon.assert.match(myArr[0], someValue) 但是如何检查someValue是否在myArr中的任何位置?如果不想创建一个遍历每个元素的循环,可以使用以下方法 myArr.includes(someValue); 我还没有尝试过sinon,但看看这是否有效: assert.equals(myArr.includes(someValue), true); // or assert(myArr.i

我知道我可以检查特定索引中的特定值,例如,要检查索引0处的值:

sinon.assert.match(myArr[0], someValue)

但是如何检查
someValue
是否在
myArr
中的任何位置?

如果不想创建一个遍历每个元素的循环,可以使用以下方法

 myArr.includes(someValue);
我还没有尝试过sinon,但看看这是否有效:

assert.equals(myArr.includes(someValue), true);
// or
assert(myArr.includes(someValue));

哦,对了,我没想过!但是如果
someValue
是一个对象,它就不起作用。。您知道如何使其工作吗?@Gambit2007在这种情况下,您可以使用
myArray.find(predicate)
where
predicate
定义您的条件。当
someValue
是一个对象时,如果你说它不起作用,那就意味着你想以一种特定的方式来等同对象,其中as
包括
通过标识来等同对象。@Gambit2007 well对象具有引用标识(它们只是花哨的指针)。给定
eq=(a,b)=>a==b
,和
a={}
b={}
eq(a,b)
false
但对于
a={}/code>和
b=a
eq(a,b)
,因为
a
b
指的是同一个对象,所以包含
是否仅在引用同一对象时才起作用?