gpt4 book ai didi

mocha.js - 如何用 Chai 和 Mocha 测试嵌套对象?

转载 作者:行者123 更新时间:2023-12-02 16:54:11 24 4
gpt4 key购买 nike

我正在使用 mocha、chai 和 chai-http 对我的 Node.js 和 Express 应用程序进行集成测试。我正在尝试测试我的登录路由是否有 token 。我尝试了不同的断言来检查 token 是否存在于数据对象中,但它们都不起作用。

来自 Postman 的数据如下所示:

{
"data": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6NiwiaWF0IjoxNTYzODczMzE3LCJleHAiOjE1NjM5NTk3MTd9.bM1RFem2pnlEqjTWGhg-s4Am1PjGNRUS_8x5Dq8J6lI",
"user": {
"id": 6,
"firstName": "John",
"lastName": "Doe",
"email": "test@test.com",
"createdAt": "2019-07-23T06:38:11.358Z",
"updatedAt": "2019-07-23T06:38:11.358Z"
}
},
"hasErrors": false,
"errors": []
}

这是我的实际测试,我试图检查 res.body 是否在数据对象中嵌套了标记。

/* Login Test */
let credentials = {
'email': 'adnan@test.com',
'password': 'test'
};

describe("POST /user-sessions", function() {
it("should login user", function(done) {
chai.request('http://localhost:3000')
.post("/user-sessions")
.send(credentials)
.end((err, res) => {
res.should.have.status(200);

res.body.should.have.nested.property('data.token');
done();
})
});
})

我收到 Uncaught AssertionError: expected { Object (data, hasErrors, ...) } to have property 'data.token'

最佳答案

我使用 expect 进行断言,因此使用以下选项效果很好:

expect(res.body).to.deep.nested.property('payload.products.changes');

我的 API 的示例响应如下:

{
"success": true,
"payload": {
"products": {
"changes": {
"period": 30
}
}
}
}

我希望有人觉得这有帮助。

关于mocha.js - 如何用 Chai 和 Mocha 测试嵌套对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57160926/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com