如何使用should.js断言Set包含所需的值



我在单元测试中使用should.js库进行断言,并想知道如何断言Set的内容符合预期。

let actualValues = new Set();
actualValues.add(2);
actualValues.add(4);
actualValues.add(6);
actualValues.should.be....... ?

我的第一直觉是使用Array.from(actualValues),然后将其与预期值进行比较;但由于CCD_ 3是CCD_。

以下工作;但它似乎很冗长:

actualValues.size.should.be.eql(3);
actualValues.has(2).should.be.true();
actualValues.has(4).should.be.true();
actualValues.has(6).should.be.true();

您可以在一个集合上迭代,并断言每个项也在第二个集合中,然后断言它们的大小相等。

const should = require('should')
const set1 = new Set(['red', 'green', 'blue']);
const set2 = new Set(['blue', 'red', 'green']);
for (let x of set1) {
  set2.has(x).should.be.true()
}
set2.size.should.equal(set1.size)

这可能是至少像haveSameContent(set1, set2)这样的辅助函数的一个很好的候选者,如果你想做像set1.should.have.same.items.as(set2)这样的事情,你也可以将其编码到should.js扩展中。

最新更新