-
JavaScript Unit Test & JestReact/Test 2021. 6. 7. 23:37
TDD(Test-driven Development)
출처: 위키디피아테스트 주도 개발(Test-driven development, TDD)은 매우 짧은 개발 사이클을 반복하는 소프트웨어 개발 프로세스 중 하나이다. 우선 개발자는 바라는 향상 또는 새로운 함수를 정의하는 (초기적 결함을 점검하는) 자동화된 테스트 케이스를 작성한다. 그런 후에, 그 케이스를 통과하기 위한 최소한의 양의 코드를 생성한다. 그리고 마지막으로 그 새 코드를 표준에 맞도록 리팩토링한다. 이 기법을 개발했거나 '재발견' 한 것으로 인정되는 Kent Beck은 2003년에 TDD가 단순한 설계를 장려하고 자신감을 불어넣어 준다고 말하였다.
- Jest
- npm i -D jest
- npm i -D jest
- Jest 자동 감지
- npx jest --watchAll
- npx jest --watchAll
- package.json scripts 수정
- scripts : {
"test" : "jest"
}
- scripts : {
// example.test.js // describe: 여러 테스트 케이스 묶기 describe('expect test', () => { // toBe : primitive 값 일치하는지 판단 it('37 to equal 37', () => { expect(37).toBe(37); }); // toEqual: 객체가 일치하는지 판단 it('{age:39} to equal {age:39}', () => { expect({ age: 39 }).toEqual({ age: 39 }); }); // toHaveLength: 길이 확인 it('.toHaveLength', () => { expect('hello').toHaveLength(5); }); // toHaveProperty: 프로퍼티 존재하는지 판단 it('.toHaveProperty', () => { expect({ name: 'Msko' }).toHaveProperty('name'); expect({ name: 'Msko' }).toHaveProperty('name', 'Msko'); }); // toBeDefined: 정의 되어있는지 판단(undefined가 아닌지) it('.toBeDefined', () => { expect({ name: 'Msko' }.name).toBeDefined(); }); // toBeFalsy: Falsy한 값인지 판단 it('.toBeFalsy', () => { expect(false).toBeFalsy(); expect(0).toBeFalsy(); expect('').toBeFalsy(); expect(null).toBeFalsy(); expect(undefined).toBeFalsy(); expect(NaN).toBeFalsy(); }); // toBeGreaterThan: 큰 값인지 확인 it('.toBeGreaterThan', () => { expect(10).toBeGreaterThan(5); }); // toBeGreaterThanOrEqual: 크거나 같은지 판단 it('.toBeGreaterThanOrEqual', () => { expect(10).toBeGreaterThanOrEqual(10); }); // toBeInstanceOf: instance인지 확인 it('.toBeInstanceOf', () => { class Foo {} expect(new Foo()).toBeInstanceOf(Foo); }); });
- Jest