2017-05-23 7 views
0

fs.writeFileの間にエラーが発生した場合、コンソールログにメッセージが出力されることをテストしたいと思います。以下のテストは合格しますが、エラーのスタックトレースがテストコンソールに出力されますが、これは不要です。それを避ける方法は?mocha + chai + sinonで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

正確なエラーメッセージについてもテストしたいと思います。 – maasha

答えて

1

それは理想的ではないのですが、あなたはconsole.logスタブと、すぐにhistory.saveを呼び出した後、それを復元する場合、あなたはおそらく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; 
}); 

をテストするには、正しいエラーであった場合投げられた:

it('should output the correct error to console',() => { 
    let error = new Error('write error'); 
    sandbox.stub(fs, 'writeFile').yields(error); 
    const consoleStub = sinon.stub(console, 'log'); 
    history.save(); 
    consoleStub.restore(); 
    expect(consoleStub).to.have.been.calledWith(error); 
}); 
関連する問題