我正在尝试使用 Jest 创建一个单元测试,以确保名为 values
的数组不包含虚假值。
由于某种原因这不起作用 - 测试通过:
const badValues = ['', null, undefined, false, {}, []];
expect(values).toEqual(expect.not.arrayContaining(badValues));
下面的代码按预期工作(测试失败),但肯定有一个正确的方法而不是循环我的值?
for (const value of values) {
expect(value).toBeTruthy();
}
最佳答案
如果 values
和 badValues
都是以下数组,则可以迭代 badValues
,然后迭代 includes()
字符串或数字,而不是对象。
const badValues = ['', 'null', 'undefined', 'false', '{}', '[]'];
var values = [1,2,3,4,'null',5];
for(let i = 0; i<badValues.length; i++){
if(values.includes(badValues[i])){
console.log("bad value present");
break;
}
}
否则,我认为没有比迭代值
更好的方法了。可以使用 test()
和正则表达式,但是 [
,]
,{
,}
都是正则表达式中的特殊字符。所以我们应该逃离他们。
关于javascript - 检查 Jest 中数组不包含虚假值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52017823/