如何用Chai的expect断言判断数组是否全为true?
解决方案:用Chai的expect断言布尔数组全为true
不需要手动构建对应长度的全true数组,有几种简洁的方式实现:
方法一:利用数组原生every方法
直接调用数组的every方法检查所有元素是否为true,再断言这个检查结果为true:
expect(result.every(item => item === true)).to.be.true;
如果数组里有任何一个false或者非预期值(比如undefined、null),every都会返回false,断言就会失败,符合需求。
方法二:使用Chai的satisfy方法
Chai的satisfy方法允许传入自定义校验函数,直接对目标数组进行断言,可读性更强:
expect(result).to.satisfy(arr => arr.every(item => item === true));
补充:严格校验元素类型(可选)
如果需要确保数组里的元素都是布尔类型的true(排除1这种会被隐式转为true的值),可以在校验函数里加上类型判断:
expect(result).to.satisfy(arr => arr.every(item => typeof item === 'boolean' && item === true));
内容的提问来源于stack exchange,提问作者Dzianis Czaplia
相关产品推荐
相关产品推荐

