node.js - 无法使用诺克移除拦截器

标签 node.js nock

我正在使用 nock,我正在尝试删除某些主机名的拦截器。

我试过使用:

nock.removeInterceptor({
      hostname: 'somehostname.com',
      proto: 'https',
      path: '/',
    }),

当我打印这个结果时,它实际上给了我 true

我也试过:

const mock = nock(somehostname.com)
    .persist()
    .post('/endpoint')
    .reply(200);

nock.removeInterceptor(mock)

但不知何故这给了我

我检查这是否有效的方法是打印 activeMocks: nock.activeMocks() 它仍然有我要删除的拦截器。

有人知道会发生什么吗?

最佳答案

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

const mock = nock(somehostname.com)
    .persist()
    .post('/endpoint')
    .reply(200);

nock.removeInterceptor(mock.interceptors[0])

mock.interceptors 是为此作用域注册的所有拦截器对象的数组,因此我获取了最近创建的作用域并将其从箭尾中移除。

关于node.js - 无法使用诺克移除拦截器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57073358/

相关文章:

mysql - 如何在 Node.js 中动态创建数据库连接?

node.js - 像nock这样的nodejs模拟模块有什么好处?

node.js - 如何通过具有不同状态代码的 Nock 对同一 url 进行后续调用

node.js - Nock 未在 Redux 测试中拦截 API 调用

node.js - 使用 Yahoo Finance API 的实时流创建 nodeJS mongoDB Web 应用程序

json - 如何在node.js中指定本地机器的IP地址和端口号

javascript - Nock 不会拦截对第 3 方的调用

javascript - 带诺克的 Mocha 茶 : why am I getting timeout errors when doing cleanup in 'after()' and 'afterEach()' ?

javascript - Socket.io 不从客户端向服务器发送数据

javascript - 如何使用 StrongLoop 在 Node.js 中提供动态内容?