You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Sinon Spy无法记录调用的问题排查求助

Sinon Spy无法记录调用的问题排查求助

各位大佬好,我最近在写Node.js测试的时候碰到个头疼的问题:Sinon的spy完全抓不到目标方法的调用,导致测试一直失败,想请大家帮忙看看哪里出问题了🥺

我运行的测试代码如下:

"use strict";

const sinon = require("sinon");
const proxyquire = require("proxyquire");

const getFunctions = (sqsMock) =>
  proxyquire("../index.js", { "@third-party/mv-sqs": sqsMock });

const getHandler = function (stub) {
  return function (...args) {
    console.log("Args:", args);
    stub.call(stub, ...args);
  };
};

const getQueueTemplateMock = function GetQueueTemplateMock(name, options) {
  const { sql, redis, logger, handler = () => {}, queueConfig = {} } = options;

  return {
    name,
    setup: async function (_config) {
      return { handler, queueConfig, logger, sql, redis };
    },
  };
};

describe("listenOnAllQueues", () => {
  let sqsSpy = null;
  const loggerMock = { info: () => {} };
  const sqsMock = {
    receive: (_q, _handler, _options) => {
      // 这里的业务逻辑暂时省略,但spy就是捕获不到这个方法的调用
    },
  };

  // 后续测试用例代码...
});

我本来指望sqsSpy能记录到sqsMock.receive的调用,但不管怎么调整,spy的调用记录始终是空的。我怀疑是不是proxyquire替换第三方模块的方式不对,或者spy的初始化、挂载环节出了问题?有没有大佬能帮我分析下可能的原因,或者给点调试方向?

备注:内容来源于stack exchange,提问作者M.Nar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 08:48:00