我在单元测试中使用should.js库进行断言,并想知道如何断言Set的内容与预期相符。
let actualValues = new Set();
actualValues.add(2);
actualValues.add(4);
actualValues.add(6);
actualValues.should.be....... ?我的第一反应是使用Array.from(actualValues),然后将其与期望值进行比较;但是,actualValues的顺序自然是没有定义的,因为它是一个Set。
以下是工作,但似乎相当冗长:
actualValues.size.should.be.eql(3);
actualValues.has(2).should.be.true();
actualValues.has(4).should.be.true();
actualValues.has(6).should.be.true();发布于 2016-01-03 15:55:34
您可以迭代一个集合,并断言每个项也在第二个集合中,然后断言它们的大小相等。
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扩展。
https://stackoverflow.com/questions/34577176
复制相似问题