我进行测试,我需要检查对象中的项目数
我的测试:
describe('POST /api/products/:product_id', () => {
it(`You should receive the product with at the price of 0 ... 1000`, (done) => {
let operationCount = productForUser.length;
for (let i = 0; i < productForUser.length; i++) {
chai
.request(server)
.get(`/api/products/${productForUser[i]}`)
.set('token', constants.userToken)
.end((err, res) => {
operationCount--;
expect(res).have.status(200);
expect(res.body).have.property('message');
expect(res.body.message).to.be.equal('Product found');
expect(res.body).have.property('productDetails');
expect(res.body.productDetails).to.be.a('object');
expect(res.body.productDetails.length).to.deep.equal(22);
if (operationCount == 0) {
done();
}
});
}
});
});
我的回应
{
"message": "Product found",
"productDetails": {
"product_id": 402,
"product_name": "This is Another Bad Creation",
"product_description": "ABC BBD the East Coast Family. Never skipped a bit while cooling on South Street. ",
"original_price": 100,
"sale_price": 1,
"discount": 99,
"creating_date": "2019-04-15T03:02:57.000Z",
"end_date": "2019-04-25T04:00:00.000Z",
"product_photos": [
"https://...",
"https://..."
],
"quantity_available": 100,
"store_id": 9,
"categories": "Bags",
"starting_date": "2019-04-24T23:00:00.000Z",
"active": true,
"merchant_name": "Silas",
"contact_number": "+63 0927 9545228",
"type_location": "Subic Bay Freeport",
"likes": "0",
"bookmarks": false,
"is_liked": false
}
}
我卖掉是这样做的,但是我意识到物体没有薄煎饼。
expect(res.body).have.property('productDetails');
expect(res.body.productDetails).to.be.a('object');
如何检查对象中的项目数?
答案 0 :(得分:1)
您可以使用Object.keys获取对象自己的属性键的列表,并检查其长度。
Object.keys(res.body.productDetails).length
答案 1 :(得分:1)
使用Object.keys
,您可以执行以下操作,
assert.equal(Object.keys(res.body.productDetails).length, 2);