gpt4 book ai didi

javascript - Proxyquire 不 stub

转载 作者:行者123 更新时间:2023-12-03 03:00:23 26 4
gpt4 key购买 nike

我尝试使用 proxyquire 来 stub child_process 模块的 spawnSync 方法,但它不起作用。我的 index.js 文件中的 console.log(gitResponse) 不返回 stub 字符串,而是返回未 stub 的响应(在本例中为 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();

}
}

最佳答案

根据documentation ;你不应该做这样的事情吗:?

var assert = require('assert');


var index = proxyquire('../index.js', {
'child_process': {
spawnSync: function (command, args) {
return {
stdout: {
toString: () => "git init success string"
}
};
}
}
});

var sinon = require('sinon');
var proxyquire = require('proxyquire');

describe('test', function () {
it(
'tests'
,function () {
sinon.assert.match(index.init(), "git init success string");
}
)
});

关于javascript - Proxyquire 不 stub ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47424805/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com