[javascript] Chai의 Assertion 메서드 중 예외 상황을 확인하는 메서드는?
.throw
메서드를 사용하면 특정 함수 실행 시 예외가 발생하는지 여부를 확인할 수 있습니다. 아래는 .throw
메서드를 사용한 예제 코드입니다:
const chai = require('chai');
const expect = chai.expect;
function divide(a, b) {
if (b === 0) {
throw new Error("Cannot divide by zero");
}
return a / b;
}
describe('divide', () => {
it('should throw an exception when dividing by zero', () => {
expect(() => divide(10, 0)).to.throw(Error, "Cannot divide by zero");
});
it('should return the correct quotient when dividing two numbers', () => {
expect(divide(10, 2)).to.equal(5);
});
});
위의 코드에서는 divide
함수를 테스트하고 있습니다. 첫 번째 테스트의 경우 expect(() => divide(10, 0)).to.throw(Error, "Cannot divide by zero")
코드로 함수를 실행하였을 때 Error
가 발생하고 에러 메시지가 “Cannot divide by zero”인지 확인합니다.
두 번째 테스트의 경우 정상적인 상황에서의 결과를 검증하기 위해 expect(divide(10, 2)).to.equal(5)
코드로 함수를 실행하며 결과값이 5인지 확인합니다.
.throw
메서드를 사용하여 예외 상황을 확인할 수 있기 때문에 테스트 코드 작성 시 유용하게 사용할 수 있습니다.
자세한 내용은 Chai 공식 문서를 참고하시기 바랍니다. (https://www.chaijs.com/api/bdd/#method_throw)