【发布时间】:2018-10-29 21:43:48
【问题描述】:
我在 node.js 的异步函数中捕获 process.stdout.write 时遇到问题。我已经阅读了很多其他人的解决方案,并且遗漏了一些明显的东西,但我无法弄清楚它是什么。我找到了适用于同步功能的解决方案here,但无法使异步功能正常工作。我已经尝试了两种本地解决方案以及 test-console.js 库。
这是我要测试的功能:
const ora = require('ora')
const coinInserted = (totalInserted) => {
const spinner = ora(' KA-CHUNK').start();
const output = `Amount Inserted: $${(totalInserted / 100).toFixed(2)}`;
setTimeout(() => {
spinner.text = ` ${output}`;
spinner.color = 'green';
spinner.succeed();
process.stdout.write('Please Insert Coins > ');
}, 500);
};
test-console.js 库中的文档说要像这样测试异步函数:
var inspect = stdout.inspect();
functionUnderTest(function() {
inspect.restore();
assert.deepEqual(inspect.output, [ "foo\n" ]);
});
...但是我不明白functionUnderTest的语法。我认为我必须修改我正在测试的函数以接受回调函数,在其中我将调用测试(检查和断言)函数?但这似乎也不起作用。
【问题讨论】:
标签: javascript node.js mocha.js