есть сообщество, у меня есть некоторые проблемы при тестировании генератора, который я пишу. в генераторе я использую ora для получения значимых выводов консоли. код приведен ниже.
let spinner = ora().start("\nprepairing git repository");
this.spawnCommand("git", ["init", "--quiet"], {
stdio: 'inherit'
});
spinner.succeed("git repository initialized");
при тестировании генератора, при некоторых тестах, он выдает выходные данные для ora. Мой вопрос заключается в том, есть ли способ подавить выходы консоли, чтобы выходы не возникали в тесте. Вот код в тесте
test.beforeEach(t => {
let sora = sinon.stub(ora().__proto__, "start")
.withArgs("")
.returns({
"succeed": sinon.stub().withArgs(""),
"start": sinon.stub().withArgs("")
});
t.log(sora.called);
});
Я также попытался ввести код заглушки, нажав NodeJS native require api.
test.beforeEach(t => {
delete require.cache[require.resolve("ora")];
let sora = sinon.stub()
.withArgs("")
.returns({
"succeed": sinon.stub().withArgs(""),
"start": sinon.stub().withArgs("")
});
require.cache[require.resolve("ora")] = {
exports: sora
}
t.log(sora.called);
вместо использования фиктивной библиотеки require, такой как proxyquire
, есть ли способ подавить вывод консоли или каков лучший способ заглушить код, когда мы не Контролировать экспорт?