Javascript sinon-如何检查值是否在数组中?
我知道我可以检查特定索引中的特定值,例如,要检查索引0处的值: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
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)
wherepredicate
定义您的条件。当someValue
是一个对象时,如果你说它不起作用,那就意味着你想以一种特定的方式来等同对象,其中as包括通过标识来等同对象。@Gambit2007 well对象具有引用标识(它们只是花哨的指针)。给定eq=(a,b)=>a==b
,和a={}
和b={}
,eq(a,b)
为false
但对于a={}/code>和b=a
eq(a,b)
为真
,因为a
和b
指的是同一个对象,所以包含
是否仅在引用同一对象时才起作用?