我的测试文件中包含以下代码:
const stub1 = sinon.stub('../path/to/module', '_myFunc')
stub1.callsFake( function() { console.log("223344") }
)
在beforeEach
中的Mocha
内,但是当调用_myFunc
时,它没有执行console.log
。
_myFunc
的导出方式如下:
module.exports = {
_myFunc
}
我在做什么错了?
答案 0 :(得分: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