모든 테스트를 완전히 자동화 하고 그 결과까지 스스로 검사하게 만들자.
테스트를 적성하기 가장 좋은 시점은 프로그래밍을 시작하기 전이다.
테스트 주도 개발은 테스트가 개발을 주도하는 방법이다.
테스트가 개발을 주도한다는 것은 테스트가 코딩의 방향을 이끌어 간다는 말이다. 테스트를 실패하는 코드가 없으면 코딩을 하지 않고, 코드상에 중복이 있으면 제가한다는 간단한 규칙을 치켜나가면 자연스레 아름다운 코드가 펼쳐진다. 덤으로 회구 테스트도 생기고, 개발 과정 자체가 즐거워지는 보너스도 있다.
npm i -D jest @types/jext babel-jest
jest의 타입 정의를 가지고 있는 모듈입니다. TypeScript에서 주로 사용되지만 이 모듈을 설치하게 되면 편집기 내에서 자동 완성을 지원하기 때문에 설치합니다.
단정문이라고 부르는 Assertion은 우리가 기대하는 값이 실제 값이랑 일치하는지 확인하는데 사용합니다. 자바스크립트의 console.assert는 우리가 기대하는 값이 아니면 콘솔에 출력되도록하여 프로그래머가 원하는 값이 아닌 경우 즉각적으로 알 수 있도록 도와 줍니다. 테스트에도 단정문을 사용하여 우리가 원하는 값이 맞는지 계속해서 피드백을 얻을 수 있습니다.
모든 연산은 연사의 이름, 매개변수, 반환값을 명세합니다. 이를 시그니처라고 부릅니다.