我有一個具有許多屬性的物件,想檢查其中的一些。但是其中一個欄位是隨機字串,因此無法檢查是否完全匹配。
const expectedObject = {
a: 'A',
b: 123,
c: ['x', 'y', 'z'],
random: 'dsfgshdfsg'
}
eql由于隨機欄位,檢查無效。
expect(result).to.eql(expectedObject)
是否有類似的方法可以為物件提供僅包含我要測驗的欄位?
另一種方法是洗掉測驗的隨機欄位,但這有點麻煩。
const resultWithKnownFields = {...result}
delete resultWithKnownFields.random
const expectedObject = {
a: 'A',
b: 123,
c: ['x', 'y', 'z']
}
expect(resultWithKnownFields).to.eql(expectedObject)
expect(result.random.length).to.equal(10)
uj5u.com熱心網友回復:
.containSubset()的方法柴子集插件。可以對物件中的欄位進行部分匹配。
const { expect } = require('chai');
const chai = require('chai');
const chaiSubset = require('chai-subset');
chai.use(chaiSubset);
describe('69555042', () => {
it('should pass', () => {
const expectedObject = {
a: 'A',
b: 123,
c: ['x', 'y', 'z'],
};
const result = {
a: 'A',
b: 123,
c: ['x', 'y', 'z'],
random: 'dsfgshdfsg',
};
expect(result).to.containSubset(expectedObject);
expect(typeof result.random).to.equal('string');
});
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/324871.html
標籤:javascript 单元测试 柴
