我想测试一下,如果在fs.writeFile
期间发生错误,则会将消息输出到控制台日志。下面的测试确实通过了,但它将错误的堆栈跟踪输出到测试控制台,这是不需要的。如何避免?
describe('with fs error', () => {
it('should output errors to console', () => {
sandbox.stub(fs, 'writeFile').yields(new Error('write error'));
const consoleSpy = sandbox.spy(console, 'log');
history.save();
expect(consoleSpy).to.have.been.calledOnce;
});
});
答案 0 :(得分:3)
它并不理想,但是如果您将console.log
存根并在致电history.save
后立即恢复它,您可能不会干扰Mocha对{{{{{{ 1}}:
console.log
测试是否抛出了正确的错误:
it('should output errors to console', () => {
sandbox.stub(fs, 'writeFile').yields(new Error('write error'));
const consoleStub = sinon.stub(console, 'log');
history.save();
consoleStub.restore();
expect(consoleStub).to.have.been.calledOnce;
});