191024
테스트 없이는 스프링도 없다.
스프링도 테스트를 만들어가며 개발됐다.
코드에 변경사항이 없다면 테스트도 동일한 결과를 내야 한다.
DB 중복 값 에러 등 외부 상태에 따라 성공/실패하면 안 된다.
스프링의 창시자인 로드 존슨은
"항상 네거티브 테스트를 먼저 만들라"는 조언을 했다.
나는 잘 되던데? 는 변명이다.
테스트 코드는 잘 작성된 기능 정의서이다.
코드로 된 설계문서를 만든다고 생각하자.
실패하는 테스트를 먼저 만들고, 테스트를 성공하게 하는 코드를 작성하는 방식의 개발 방법을
"테스트 주도 개발, TDD, Test Driven Development"라고 한다.
실패한 테스트를 성공시키기 위한 목적이 아닌 코드는 만들지 않는다.
테스트는 작성한 후 가능한 한 빨리 실행할 수 있어야 한다.
그러려면 테스트 없이 한 번에 너무 많은 코드를 만드는 것은 좋지 않다.
테스트는 별도로 글을 작성할 것!