매개변수화(데이터 주도) 테스트는 같은 테스트 로직을 여러 입력 및 기대 출력 세트로 실행합니다 — 각 케이스마다 테스트를 복제하는 것을 피합니다. 많은 시나리오(엣지 케이스 포함)를 간결하게 테스트하기 쉽게 만듭니다.
문제: 복제된 테스트
매개변수화 없이는, 많은 입력/출력 케이스를 테스트하려면 테스트를 복사해야 한다:
test('add 2+3', () => expect(add(2,3)).toBe(5));
test('add 0+0', () => expect(add(0,0)).toBe(0));
test('add -1+1', () => expect(add(-1,1)).toBe(0));
→ 거의 동일한 반복적 테스트가 많음 (지루하고, 유지보수 어려움)
매개변수화 테스트 — 하나의 테스트, 여러 케이스
test.([
[, , ],
[, , ],
[-, , ],
[, , ],
])(, {
((a, b)).(expected);
});
