chai js expect property value empty array

2020-03-18 04:49发布

问题:

I'm trying to write a unit test using chai js assertion, and was wondering how to expect arrays with zero length as values.

My Test function expect statement:

return expect(functionRetuningPromise()).to eventually.have.property("key1", []);

Console Output on running mocha:

AssertionError: expected { otherkey: otherVal, key1: [] } to have a property 'key1' of [], but got []

I have tried deep.property, key1:"[]" with no success

回答1:

I ignored there's a section of change in assertion for properties. So, what made it work for me was :

return expect(functionRetuningPromise()).to.eventually.have.property("key1").that.eql([]);


回答2:

What about

return 

expect(functionRetuningPromise()).to.eventually.have.property("key1").that.satisfy(function (value) {
  expect(value).to.be.instanceof(Array);
  expect(value).to.have.length.above(0);
  return true;
})