【发布时间】:2021-02-03 15:28:29
【问题描述】:
这是我的示例代码,由于某种原因,Nock 对我来说失败了,因为它在添加标题时无法匹配 URL,当像下面的测试通过注释代码时。我不明白为什么 nock 不理解标题,因为文档说这样做我已经这样做了: reqheaders: { 'authorization' : 'Basic Auth' }
希望有人能找到我正在做的一些奇怪的事情。
const axios = require('axios');
async function postAPI(params) {
let response1 = '';
try {
response1 = await axios.post('http://someurl/test2', params);
} catch(error) {
throw error;
}
try {
console.log("Im here", response1.data.sample)
const response = await axios.get('http://testurl/testing', {
// headers: {
// 'authorization' : 'Basic Auth' //+ response1.data.sample
// }
});
return response.data;
} catch(err) {
console.log("Error", err)
}
}
exports.postAPI = postAPI;
测试
it('make an api call - POST', async () => {
nock('http://someurl')
.persist()
.defaultReplyHeaders({
'access-control-allow-origin': '*',
'access-control-allow-credentials': 'true'
})
.post('/test2')
.reply(200, {
sample : 'test2'
});
const test = nock('http://testurl', {
// reqheaders: {
// 'authorization' : 'Basic Auth'
// }
})
.defaultReplyHeaders({
'access-control-allow-origin': '*',
'access-control-allow-credentials': 'true'
})
.get('/testing')
.reply(200, { data : 'test' });
const response = await postAPI();
console.log("XXXX", response)
expect(response.data).toEqual("test");
});
【问题讨论】:
-
您是否尝试过启用调试以查看为什么 Nock 与您的请求不匹配? github.com/nock/nock#debugging
-
由于某种原因在工作代码上遇到困难,它没有点击 URL 并得到未定义的响应。就像在家里一样,除了身份验证头问题之外。打算改为尝试 axios mock,看看它是否对我更有效。还是谢谢。
标签: node.js testing jestjs nock