我有一个服务请求被锁定,我希望在这种情况下nock错误(nock:请求POST不匹配)但获得成功的响应。想知道为什么!
nock(`http://localhost`, {
reqheaders: {
'Content-Type': 'application/json'
}
})
.post('/')
.reply(201, function () {
return fs.readFileSync(`./data/mock-response.json`, 'utf8');
});
,实际的服务电话是
request(
url: 'http://localhost/',
time:true,
timeout: 5000,
method: 'POST',
headers: {
Content-Type: 'application/json
},
body: {
test:'test'}
)
使用nock与以下参数不匹配 身体,时间,超时 仍然n to回报我正确的儿子
答案 0 :(得分:0)
您需要在body
对象中指定nock
,否则nock将根据网址和动词拦截它。
根据official nock documentation,必须指定一个正文才能匹配。
你的nock对象看起来像这样:
nock(`http://localhost`, {
reqheaders: {
'Content-Type': 'application/json'
}
})
.post('/', {
test: 'test'
})
.reply(201, function () {
return fs.readFileSync(`./data/mock-response.json`, 'utf8');
});
答案 1 :(得分:0)
根据文档:您可以将要匹配的请求正文指定为获取,发布,放置或删除规范的第二个参数。
它没有说必须。如果未指定正文,则所有帖子都将匹配。