만약에 계산기의 합이 100을 넘는다면 에러를 띄어주도록 테스트코드를 작성한다면 ?
class Calculator {
value: number;
constructor() {
this.value = 0;
}
add(num: number) {
const sum = this.value + num;
if (sum > 100) {
throw new Error("합은 100 을 넘을 수 없습니다!");
}
this.value = sum;
}
}
module.exports = Calculator;
const MyCalculator = require("../calculator");
describe("Calculator", () => {
let cal: Calculator;
beforeEach(() => {
cal = new MyCalculator();
});
it("add", () => {
cal.set(0);
cal.add(2);
expect(cal.value).toBe(2);
});
it("합이 100을 넘는다면 에러를 던져야합니다.", () => {
expect(() => {
cal.add(103);
}).toThrow("합은 100 을 넘을 수 없습니다!"); // calculator.ts에서 작성한 에러 메세지와 동일해야함.
});
});
위처럼 expect안에 콜백함수를 넣어주고, toThrow를 이용해서 에러메세지를 띄어준다.