참고한 싸이트
ts환경에서 jest 설정
https://github.com/JamesPeiris/ts-jest-warning
jest의 기본
https://www.daleseo.com/jest-basic/
테스트 코드를 작성하기 위해서 이다.
기본적인 디버그 툴인 console.log는 테스트하고자 하는 환경까지 화면을 이동시켜야만 확인할수있다.
하지만 테스트 코드를 작성한다면 명령어 한줄이면 테스트가 가능하다.npm run test
물론 모든 코드를 테스트할 필요는 없다 정말 필요하고 중요하고 번거로운 작업에 사용하면 될것같다.
test("테스트 목적",()=>{
expect("검증대상").matcher함수("기대결과")
})
위와같이 testCode를 작성한뒤 검증대상을 선택한후 matcher를 이용해 기대결과와 맞는지 테스트한다.
그렇다면 Matcher에 대해서 알아보자
문자나 숫자같은 기본형(primitive)값을 비교하는데 사용
코드
test("1은 1이 나와야한다",()=>{
expect(()=>{return 1}).toBe(1)
})
// 결과는 다음과같은 형식이다.
PASS __test__/basicTest_Matcher.test.ts
✓ 1은 1이 나와야한다 (2 ms)
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 1.513 s, estimated 3 s
객체 비교
코드
test("똑같은 객체임?",()=>{
expect({id:"i"}).toEqual({id:"i"})
})
boolean타입 뿐만 아니라 falsy하거나 truthy한 데이터를 테스트
코드
test("0은 falsy함?",()=>{
expect(0).toBeFalsy()
})
test("'0'은 truthy함?",()=>{
expect(0).toBeTruthy()
})
배열과 관련된 매처
const arr=[1,2,3]
test('배열의 길이가 3임?',()=>{
expect(arr).toHaveLength(3)
})
test('배열안에 3이 들어있음?',()=>{
expect(arr).toContain(3)
})
반대의 결과가 나올때 true를 반환한다.
test('배열안에 3이 안 들어있음?',()=>{
expect(arr).not.toContain(3)
})
다음 포스팅은 비동기 객체를 시험하는 방법이다.