4
我有兩個數組:Should.js:檢查兩個數組包含相同字符串
var a = ['a', 'as', 'sa'];
var b = ['sa', 'a', 'as'];
有什麼特別的shouldJS測試,如果這兩個數組有相同的項目?任何類似
should(a).be.xyz(b)
可以測試它們嗎?在這裏,xyz是我正在尋找的。
我有兩個數組:Should.js:檢查兩個數組包含相同字符串
var a = ['a', 'as', 'sa'];
var b = ['sa', 'a', 'as'];
有什麼特別的shouldJS測試,如果這兩個數組有相同的項目?任何類似
should(a).be.xyz(b)
可以測試它們嗎?在這裏,xyz是我正在尋找的。
您可以通過should
的Assertion.add
功能實現此功能。例如:
var a = ['a', 'as', 'sa'];
var b = ['sa', 'a', 'as'];
should.Assertion.add('haveSameItems', function(other) {
this.params = { operator: 'to be have same items' };
this.obj.forEach(item => {
//both arrays should at least contain the same items
other.should.containEql(item);
});
// both arrays need to have the same number of items
this.obj.length.should.be.equal(other.length);
});
//passes
a.should.haveSameItems(b);
b.push('d');
// now it fails
a.should.haveSameItems(b);
這個答案不正確。 .equal使用===參考相等。需要使用.eql。 –
@denbardadym感謝您的注意,更新了我的答案。 – Timo