javascript - 检查 Jest 中数组不包含虚假值

标签 javascript node.js unit-testing jestjs

我正在尝试使用 Jest 创建一个单元测试,以确保名为 values 的数组不包含虚假值。

由于某种原因这不起作用 - 测试通过:

const badValues = ['', null, undefined, false, {}, []];
expect(values).toEqual(expect.not.arrayContaining(badValues));

下面的代码按预期工作(测试失败),但肯定有一个正确的方法而不是循环我的值?

for (const value of values) {
  expect(value).toBeTruthy();
}

最佳答案

如果 valuesbadValues 都是以下数组,则可以迭代 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/

相关文章:

javascript - jquery 拖动图像

javascript - PhysicsJS - 创建绳索并在其末端附加一些东西

javascript - 共享点; Javascript 重复点击事件已经在页面上

javascript - android webview = 找不到网页 = 在哪里添加 onReceivedError

javascript - 仅使用单词从数组中删除项目

javascript - 错误 : Missing Helper in Handlebars. js

node.js - 添加条件 Joi 架构

java - 如何对在 AndroidViewModel 类内部进行改造调用的方法进行单元测试?

javascript - 用诺克模拟 SOAP 服务

unit-testing - 使用 Nancy.Testing.Browser 发布时发生 ConfigurableBootstrapper 错误