我正在使用 nock 并且我正在尝试删除某些主机名的拦截器。
我试过使用:
nock.removeInterceptor({
hostname: 'somehostname.com',
proto: 'https',
path: '/',
}),
Run Code Online (Sandbox Code Playgroud)
当我打印这个结果时,它实际上给了我true
我也试过:
const mock = nock(somehostname.com)
.persist()
.post('/endpoint')
.reply(200);
nock.removeInterceptor(mock)
Run Code Online (Sandbox Code Playgroud)
但这以某种方式给了我错误。
我检查这是否有效的方法是打印 activeMocks:
nock.activeMocks()
而且它仍然有我试图删除的拦截器。
有谁知道会发生什么?
我遇到了同样的问题,我是这样解决的:
const mock = nock(somehostname.com)
.persist()
.post('/endpoint')
.reply(200);
nock.removeInterceptor(mock.interceptors[0])
Run Code Online (Sandbox Code Playgroud)
mock.interceptors 是为此范围注册的所有 Interceptor 对象的数组,因此我获取最近创建的范围并将其从 nock 中删除。