Front TDD

Geonil Jang·2020년 6월 15일
0

왜 TDD를 해야 하는가

모든 테스트를 완전히 자동화 하고 그 결과까지 스스로 검사하게 만들자.

테스트를 적성하기 가장 좋은 시점은 프로그래밍을 시작하기 전이다.

테스트 주도 개발은 테스트가 개발을 주도하는 방법이다.
테스트가 개발을 주도한다는 것은 테스트가 코딩의 방향을 이끌어 간다는 말이다. 테스트를 실패하는 코드가 없으면 코딩을 하지 않고, 코드상에 중복이 있으면 제가한다는 간단한 규칙을 치켜나가면 자연스레 아름다운 코드가 펼쳐진다. 덤으로 회구 테스트도 생기고, 개발 과정 자체가 즐거워지는 보너스도 있다.

2가지 간단한 룰

  1. 먼저 자동화된 테스트에서 실패하지 않는 한 새로운 코드를 작성하지 않는다.
  2. 중복을 제거 한다.

    TDD에서는 처음에는 통과하지 못할(RED) 테스트를 작성하고, 이 테스트를 통과하게끔(Green)코드를 작성하고, 결과 코드를 최대한 깔끔하게 리팩터링 하는 짧은 주기로 반복합니다.

Jest

Jset는 자바스크립트 테스팅 프레임워크입니다.

  • 간단한 설정만으로도 테스트를 실행할 수 있습니다.
  • 풍부한 matcher를 제공하여 별도의 모듈없이 테스트를 더 풍부하게 표현할 수 있습니다.
  • Coverage도 별도의 설치 없이 확인할 수 있습니다.
  • Mocking 등을 지원하여 테스트를 더 쉽게 가능하게 해주는 프레임워크
npm i -D jest @types/jext babel-jest

types/jest

jest의 타입 정의를 가지고 있는 모듈입니다. TypeScript에서 주로 사용되지만 이 모듈을 설치하게 되면 편집기 내에서 자동 완성을 지원하기 때문에 설치합니다.

Assertion

단정문이라고 부르는 Assertion은 우리가 기대하는 값이 실제 값이랑 일치하는지 확인하는데 사용합니다. 자바스크립트의 console.assert는 우리가 기대하는 값이 아니면 콘솔에 출력되도록하여 프로그래머가 원하는 값이 아닌 경우 즉각적으로 알 수 있도록 도와 줍니다. 테스트에도 단정문을 사용하여 우리가 원하는 값이 맞는지 계속해서 피드백을 얻을 수 있습니다.

Signature

모든 연산은 연사의 이름, 매개변수, 반환값을 명세합니다. 이를 시그니처라고 부릅니다.

profile
takeaways

0개의 댓글