Sinon .callsFake()没有嘲笑函数的返回

问题描述 投票:0回答:1

我的测试文件中包含以下代码:

const stub1 = sinon.stub('../path/to/module', '_myFunc');
stub1.callsFake(function() {
  console.log('223344');
});

beforeEach中的Mocha内部,但是当调用_myFunc时,它不执行console.log

_myFunc这样导出:

module.exports = {
  _myFunc
}

我在做什么错?

javascript testing mocha sinon
1个回答
0
投票

这是一个有效的示例:

index.ts

function _myFunc() {
  console.log('real implementation');
}
module.exports = {
  _myFunc
};

index.spec.ts

import { expect } from 'chai';
import sinon from 'sinon';

const mod = require('./index');

describe('mod', () => {
  it('should stub function', () => {
    const stub = sinon.stub(mod, '_myFunc').callsFake(() => {
      console.log('223344');
    });
    mod._myFunc();
    expect(stub.calledOnce).to.be.true;
  });
});

单元测试结果:

  mod
223344
    ✓ should stub function


  1 passing (8ms)

源代码:https://github.com/mrdulin/mocha-chai-sinon-codelab/tree/master/src/stackoverflow/57044971

© www.soinside.com 2019 - 2024. All rights reserved.