gpt4 book ai didi

mocha.js - 具有相同范围和路径的不同响应与 Nock 的不同身份验证 header ,可能吗?

转载 作者:行者123 更新时间:2023-12-04 17:47:14 25 4
gpt4 key购买 nike

我正在使用具有 /places 的第 3 方 API端点,它以 JSON 形式返回经过身份验证的用户具有权限的位置的信息。该 API 使用 JWT 作为身份验证, token 位于 X-Auth-Token标题。

我的项目有一项服务,该服务使用多个用户帐户对第 3 方 API 进行身份验证。我的一个测试用例是测试该服务,以便 /places被调用两次。该服务向第 3 方 API 进行身份验证并将 token 设置为 X-Auth-Token在请求之前 /places .

我试图模拟第 3 方 API,如下所示:

nock(apiUrl)
.matchHeaders("x-auth-token", firstToken)
.get(/places/)
.reply(200, placeList1);
nock(apiUrl)
.matchHeaders("x-auth-token", secondToken)
.get(/places/)
.reply(200, placeList2)

但是 Nock 向我抛出错误,说没有匹配的请求。如果我尝试
nock(apiUrl)
.matchHeaders("x-auth-token", (value) => {
console.log(value)
return value === firstToken;
})
.get(/places/)
.reply(200, placeList1);

我可以看到 X-Auth-Token 的值对于其中一个请求是正确的,但端点仍然不匹配。

难道我做错了什么?或者甚至有可能对同一范围的同一路径发出多个请求,并使用 Nock 进行不同的响应?由于我的服务使用 Promises,我不能依赖创建请求的顺序。

我正在使用 request-promise-native在我的服务中并使用 Mocka 运行我的测试。

最佳答案

对于偶然发现这个问题的人,您当然可以使用 nock chaining 从同一路径得到不同的回答。 .

您可以尝试以下操作:

nock(apiUrl)
.matchHeaders("x-auth-token", firstToken)
.get(/places/)
.reply(200, placeList1)
.matchHeaders("x-auth-token", secondToken)
.get(/places/)
.reply(200, placeList2)

关于mocha.js - 具有相同范围和路径的不同响应与 Nock 的不同身份验证 header ,可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47913679/

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