【发布时间】:2019-07-21 13:58:41
【问题描述】:
我知道我可以检查特定索引中的特定值,例如 - 检查索引 0 处的值:
sinon.assert.match(myArr[0], someValue)
但是我如何检查someValue 是否在myArr 中的任何位置?
【问题讨论】:
标签: javascript unit-testing testing sinon
我知道我可以检查特定索引中的特定值,例如 - 检查索引 0 处的值:
sinon.assert.match(myArr[0], someValue)
但是我如何检查someValue 是否在myArr 中的任何位置?
【问题讨论】:
标签: javascript unit-testing testing sinon
如果您不想创建遍历每个元素的循环,可以使用以下方法。
myArr.includes(someValue);
我还没有用 sinon 尝试过,但看看这是否有效:
assert.equals(myArr.includes(someValue), true);
// or
assert(myArr.includes(someValue));
【讨论】:
someValue 是一个对象,它就不起作用..你知道如何让它起作用吗?
myArray.find(predicate) predicate 定义你的标准。当您说 someValue 是一个对象时它不起作用时,这意味着您希望以特定方式将对象等同起来,而 includes 通过身份等同于对象。
eq = (a, b) => a === b, 和a = {} 和b = {}, eq(a, b) 是false 但对于a = {} 和b = a eq(a, b) 是true 因为a 和@9876
myArr.includes() 只有在引用同一个对象时才有效?