我正在尝试使用nock拦截PUT请求,但是确实有些奇怪...
我的代码有2个调用,一个GET请求
http://internal-jira.com/rest/api/2/issue/CCC-2142
以及带有有效载荷的PUT请求
http://internal-jira.com/rest/api/2/issue/CCC-2142
{ fields: { reporter: { name: '8778469' } } }
过程是先执行GET,然后使用那里的信息进行PUT。
所以我还创建了2个模拟调用,其中一个用于GET
nock('http://internal-jira.com.com', {allowUnmocked: true}).persist()
.get(/\/rest\/api\/2\/issue\/.*/)
.reply(400, (uri) => {
console.log(`!!!! Mocked GET: ${uri} !!!`);
})
和一个用于PUT
.put(/\/rest\/api\/2\/issue\/.*/)
.reply(400, (uri) => {
console.log(`!!!! Mocked PUT: ${uri} !!!`);
})
如果GET代码处于活动状态并且我运行我的代码,那么我在获取console.log()时可以看到代码已被捕获
!!!! Mocked GET: /rest/api/2/issue/CCC-2144 !!!
但是,如果我在运行代码时注释掉GET并启用了PUT,则它会失败并在GET上出错,而不会被模拟。
就好像PUT模拟一样,是在某种程度上拦截了GET请求(我猜是因为url相同),但实际上并未对其进行任何操作,而且也没有让GET请求通过?
请帮助我我做错了什么。
谢谢