无法使用 nock 删除拦截器

Fel*_*Amy 2 node.js nock

我正在使用 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() 而且它仍然有我试图删除的拦截器。

有谁知道会发生什么?

Abe*_*Abe 5

我遇到了同样的问题,我是这样解决的:

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 中删除。