【发布时间】:2018-05-05 14:35:13
【问题描述】:
我正在尝试使用 proxyquire 来存根 child_process 模块的 spawnSync 方法,但它不起作用。我的 index.js 文件中的 console.log(gitResponse) 不返回存根字符串,而是返回未存根的响应(在本例中为 git 帮助文本)。
谁能看出我做错了什么?
/index.js
var childProcess = require('child_process');
function init () {
var gitInit = childProcess.spawnSync('git', ['init']);
var gitResponse = gitInit.stdout.toString() || gitInit.stderr.toString();
console.log(gitResponse);
}
module.exports = {
init: init
}
/test/indexTest.js
var assert = require('assert');
var index = require('../index.js');
var sinon = require('sinon');
var proxyquire = require('proxyquire');
describe('test', function () {
it('tests', function () {
var spawnSyncStub = function (command, args) {
return {
stdout: {
toString: () => "git init success string"
}
};
};
proxyquire('../index.js', {
'child_process': {
spawnSync: spawnSyncStub
}
});
index.init();
}
}
【问题讨论】:
标签: javascript node.js proxyquire