2017-05-23 1 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); 
}); 
관련 문제