소프트웨어 테스트
소프트웨어 테스트란 소프트웨어가 의도한 대로 작동하는지 테스트하는 행위입니다. 소프트웨어를 통해 테스트를 수행할 경우 정해진 스크립트에 따라 일관되게 동작하기 때문에 사람이 테스트를 수행할 경우 발생하는 휴먼 에러를 피할 수 있습니다.또 소프트웨어 테스트를 개발자가 작성할 경우 얻을 수 있는 가장 큰 이점은 피드백을 신속하게 받을 수 있다.”그렇습니다. 개발자가 소프트웨어 테스트를 작성하고 실행하고 개발하는 경우에는 작성된 개발 중인 소프트웨어가 정상적으로 작동하는지 수시로 확인할 수 있습니다. 따라서 실시간으로 소프트웨어 동작에 대해 피드백을 받고 올바른 방향으로 수정해 나갈 수 있으며, 소프트웨어가 적어도 작성한 테스트 코드 안에서는 제대로 작동한다는 확신을 가질 수 있습니다. 소프트웨어 테스트의 종류
Unit Test테스트 중 가장 저 수준이며 가장 작은 범위를 테스트합니다.각각의 함수, 메서드, 반, 컴포넌트 등의 동작을 테스트합니다.가장 간단한 형태의 테스트에서 실행하려면 가장 적은 비용이 듭니다.개발 과정에서 가장 자주 열리는 테스트입니다.Integration Test 2개 이상의 모듈이 결합하고 동작을 잘 수행할지 테스트입니다.복수의 모듈을 통합하는 프로세스가 필요하기 때문에 유닛 테스트보다 많은 비용이 드는 테스트입니다.End-to-End Test(E2E Test)실제 사용자가 애플리케이션을 사용하는 것과 비슷한 환경을 구축한 뒤 실제 이용자의 동작을 모방하고 테스트하는 것입니다.실제 이용자의 동작의 흐름을 그대로 모방하고 테스트할 수 있다는 장점이 있지만 환경을 구축해야 하며 사용자의 행동 시나리오를 구축해야 하기 때문에 매우 비싼 테스트입니다.대부분의 핵심 기능에 대해서 E2E테스트를 구축한 뒤 확인이 필요한 순간에만 실행하는 것이 일반적입니다.Jest에서 간단한 테스트 작성
Jest는 기본적으로 *.test.* 모양의 파일을 테스트 파일로 인식하고 해당 파일 안에 있는 코드를 실행합니다. 일반적으로 소프트웨어를 테스트하는 과정을 보면 특정 동작을 수행한다.동작을 실시한 결과가 기대한 상황과 일치하는지 여부를 판단한다.위와 같은 과정을 거칩니다.
// // fn.tsexport const fn = {add: (a: number, b: number) => a + b,};
// // fn.tsexport const fn = {add: (a: number, b: number) => a + b,};
// // fn.test.ts は ‘./fn’; test(1)’, () = = {expect(1).toBe(1);}; test(‘2 하기은 3 기 5’, () = = {fn.add(2, 3 ).toBe(5);}; test(‘3 하더은 6’, ( ); test(‘3 )} 에서 임포트 합니다.
테스트 함수 내부의 expect 내부는 기대하는 상황이 들어가는 부분이며 일치 여부를 판단하는 함수인 matchers가 toBe가 됩니다.만약 실패한 테스트 코드를 작성해 보면 아래와 같습니다.
test(「3 더하기 3은 5」, ( ) => {expect(fn.add(3, 3)).toBe(5);});
위 코드를 성공적인 테스트 코드로 변경하려면 not을 사용하십시오.
test(「3足す3は5」、()=> {expect(fn.add(3、3))。not.toBe(5);});
test(「3足す3は5」、()=> {expect(fn.add(3、3))。not.toBe(5);});
test(「3足す3は5」、()=> {expect(fn.add(3、3))。not.toBe(5);});