如何使用 BDD Javascript 测试数组元素类型?

How do I test array element types using BDD Javascript?

我正在使用 BDD 风格编写 Javascript 单元测试。我想测试一个值

  1. 是一个数组
  2. 包含所有字符串元素

我可以得到第一个条件

value.should.be.an('array');

有没有办法使用这个成语来测试第二个条件?

那……

var nonStrings = myArray.filter(function( val ){ return val.be.a.String; });

nonStrings.should.be.empty;

我认为一种简洁的方法是使用 Array.prototype.every,它会为您提供一个布尔值,指示数组中的每个值是否都是字符串。然后您可以在断言中使用该值。

value.every(function(el){ 
    return typeof(el) === 'string';
}).should.be.true;