我正在使用 mocha 和 chai 进行测试。 res.body.data
是一个对象数组。
当我直接通过to.include
检查一个数组项时,它可以正常工作,但是当我尝试通过to.deep.include
检查整个数组时,它会失败。
我被卡住了,请帮忙!
res.body.data = [{
createdAt: 1573147796,
id: "36d337d4-0184-11ea-acb9-0e4ed9667580",
message: "Good",
name: "John Doe",
rate: 5
}]
//Running test
expect(res.body.data).to.be.an('array');
expect(res.body.data[0]).to.include({ //This works fine!
message: "Good"
});
expect(res.body.data).to.deep.include({ //But this trows an error
message: "Good"
});
//Uncaught AssertionError: expected [ Array(1) ] to deep include { message: 'Good' }
done();
答案 0 :(得分:0)
Deep.include 严格检查数组是否具有成员{message: "Good"}
。
如果目标数组元素具有其他字段,则测试失败
规格说明有误。
用于检查数组的对象是否包含{ message: "Good" }
expect(res.body.data.some((item) => item.message === "Good")).to.equal(true);
当数组的至少一个元素包含{ message: "Good" }