[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)