이 문서는 Google Cloud Translation API를 사용해 자동 번역되었습니다.
어떤 문서는 원문을 읽는게 나을 수도 있습니다.
TypeScript의 유형 기반 테스트: 유형을 사용하여 테스트 전략을 개선하는 방법
TypeScript는 개발자가 개발 프로세스 초기에 오류를 포착할 수 있도록 정적 타이핑을 제공하는 강력한 언어입니다. 그러나 TypeScript를 사용하여 테스트 전략을 개선할 수도 있다는 사실을 알고 계셨습니까? 이 게시물에서는 유형을 사용하여 테스트 노력을 촉진하여 보다 강력하고 안정적인 코드를 생성하는 방법을 살펴보겠습니다.
유형 기반 테스트는 유형을 사용하여 코드의 예상 동작을 정의하는 테스트 접근 방식입니다. TypeScript의 유형 시스템을 활용하면 프로덕션에 적용되기 전에 오류를 포착하는 보다 정확하고 표현력이 풍부한 테스트를 만들 수 있습니다.
기존의 테스트 접근 방식은 코드가 어떻게 작동해야 하는지에 대한 가정을 기반으로 수동으로 테스트 사례를 만드는 방식에 의존합니다. Type-Driven Testing을 사용하면 TypeScript의 유형 시스템을 사용하여 코드의 예상 동작을 정의할 수 있습니다. 즉, 테스트가 코드로 항상 최신 상태를 유지하고 개발 프로세스 초기에 오류를 포착할 수 있습니다.
Type-Driven Testing의 핵심은 TypeScript의 유형 시스템을 사용하여 코드의 예상 동작을 정의하는 것입니다. 예를 들어 보겠습니다.
두 개의 숫자를 더하는 함수가 있다고 가정합니다.
function add(a: number, b: number): number {
return a + b;
}
이 기능을 테스트하기 위해 다음과 같은 테스트 사례를 작성할 수 있습니다.
test('add function should return the sum of two numbers', () => {
expect(add(2, 2)).toBe(4);
});
이 테스트 사례는 간단하고 간단하지만 제한적이기도 합니다. 2 + 2를 더하는 하나의 특정 사례만 테스트합니다. 음수, 소수 또는 문자열을 전달하면 어떻게 됩니까? 이러한 모든 시나리오를 다루려면 추가 테스트 사례를 작성해야 합니다.
Type-Driven Testing을 사용하면 TypeScript의 유형 시스템을 사용하여 add
함수의 예상 동작을 정의할 수 있습니다. 방법은 다음과 같습니다.
type Add = (a: number, b: number) => number;
const add: Add = (a, b) => {
return a + b;
};
이 예에서는 add
함수의 예상 동작을 설명하는 Add
라는 유형
을 정의했습니다. '추가' 유형은 두 개의 '숫자' 인수를 받아 '숫자'를 반환하는 함수입니다. 또한 add
함수를 Add
유형으로 정의했습니다.
이제 테스트 케이스를 작성할 때 Add
유형을 사용하여 테스트 케이스를 생성할 수 있습니다.
type AddTestCases = [
[a: number, b: number, expected: number],
[a: number, b: number, expected: number],
[a: number, b: number, expected: number]
];
const addTestCases: AddTestCases = [
[2, 2, 4],
[-2, 2, 0],
[0.1, 0.2, 0.3]
];
test.each(addTestCases)(
'add function should return the sum of %p and %p',
(a, b, expected) => {
expect(add(a, b)).toBe(expected);
}
);
이 테스트 케이스에서는 addTestCases
라는 테스트 케이스 배열을 정의했습니다. 각 테스트 케이스는 a
, b
및 expected
의 세 값 배열입니다. 또한 addTestCases
배열의 구조를 설명하는 AddTestCases
라는 유형
도 정의했습니다.
마지막으로 Jest 테스트 라이브러리의 test.each
함수를 사용하여 addTestCases
배열의 각 항목에 대한 테스트 케이스를 생성합니다. 테스트 사례 문자열의 %p
자리 표시자는 테스트 사례 배열의 해당 값으로 대체됩니다.
이 접근 방식으로 TypeScript의 유형 시스템을 사용하여 add
함수의 예상 동작을 정의했습니다. 또한 수동으로 각 시나리오를 작성할 필요 없이 다양한 시나리오를 다루는 여러 테스트 사례를 생성했습니다.
TypeScript에서 Type-Driven Testing을 사용하면 다음과 같은 몇 가지 이점이 있습니다.
Type-Driven Testing은 TypeScript의 유형 시스템을 활용하여 코드의 예상 동작을 정의하는 강력한 테스트 접근 방식입니다. 유형을 사용하여 테스트 노력을 주도하면 개발 프로세스 초기에 오류를 포착하는 보다 정확하고 표현력이 풍부한 테스트를 만들 수 있습니다. Type-Driven Testing을 사용하면 더 적은 수의 테스트 사례를 작성하고 오류를 조기에 발견하여 더 안정적이고 강력한 코드를 생성할 수 있습니다.