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
相关产品推荐
相关产品推荐

