您可以使用chai 的.satisfy(matcher[, msg]) 方法。
例如
import { expect } from 'chai';
import _ from 'lodash';
describe('63811326', () => {
it('should pass', () => {
function genResponse() {
const successResponse = {
data: {},
success: true,
};
const failResponse = {
success: false,
errorMessage: 'API error',
};
return Math.random() > 0.5 ? failResponse : successResponse;
}
const expectedJson1 = { data: {}, success: true };
const expectedJson2 = { success: false, errorMessage: 'API error' };
expect(genResponse()).to.satisfy((actualResponse) => {
console.log(actualResponse);
return _.isEqual(actualResponse, expectedJson1) || _.isEqual(actualResponse, expectedJson2);
});
});
});
第一次执行的单元测试结果:
63811326
{ success: false, errorMessage: 'API error' }
✓ should pass
1 passing (26ms)
第二次执行的单元测试结果:
63811326
{ data: {}, success: true }
✓ should pass
1 passing (31ms)