이동욱님의 "스프링부트와 AWS로 혼자 구현하는 웹서비스"책이 너무 재밌다고들 해서 2월초에 나도 그 스프링에 재미를 느끼려고 책을 구매했다.
[ Chap.1 인텔리제이로 스프링 부트 시작하기 ] 는 기본적인 IntelliJ설명이랑 Git 연동에 관한 부분은 책만 보고 따라할 수 도 있도록 잘 설명이 되어있었다.
그래서 [ Chap.2 스프링부트에서 테스트 코드를 작성하자 ]부터 블로그 글을 정리해나가면서 앞으로 꾸준하게 이 책을 공부하면서 챕터마다 공부한 내용을 기록할 예정이다.현재 Chap.3 번까지 공부를 했는데 시간가는줄도 모르고 나도 모르게 책을 계속 넘기면서 따라하고 있었다..(그만큼 재밌다는 뜻)
더 늦기 전에 내가 몰랐던 내용들은 정리를 해나가려 한다.
먼저 TDD와 단위테스트는 다른 이야기이다.
TDD는 테스트가 주도하는 개발 을 뜻하고 테스트 코드를 먼저 작성하는 것 부터 시작하는 것이다.
반면 단위 테스트는 TDD의 첫 번째 단계인 기능단위의 테스트 코드를 작성하는 것을 이야기한다.
❓이렇다면 단위 테스트를 통해 얻는 이점은 무엇이 있을까?
⏩ 새로운 기능이 추가될 때, 기존 기능이 잘 작동되는 것을 보장해주는 것이 테스트 코드이다.
테스트 코드 작성을 도와주는 프레임워크는 여러가지가 있는데 가장 대중적인 테스트 프레임워크는 xUnit이 있다.. 이는 개발환경(x)에 따라 Unit테스트를 도와주는 도구라고 생각하면 된다. 대표적인 xUnit 프레임워크의 종류는 다음과 같다.
JUnit은 현재 5까지 나와있고 프로젝트도 JUnit5로 진행했었는데 이 책에서는 JUnit4를 사용한다. 이유는 아직 많은 회사에서 JUnit4를 사용하고 있기 때문이라고 한다.
테스트 클래스는 대상 클래스 이름에 Test를 붙입니다. 그러므로 HelloControllerTest로 생성합니다.
@RunWith(SpringRunner.class)
@WebMvcTest
@Autowired
@private MockMvc mvc
@mvc.perform(get("/hello"))
@.andExpect(status().isOk())
@.andExpect(content().string(hello))
롬복이란 Getter,Setter,기본생성자,toString 등을 어노테이션으로 자동 생성해주는 자바 개발자들의 필수 라이브러리이다. 인텔리제이에서는 build.gradle dependencies에
implementation('org.projectlombok:lombok')
를 추가해주고 오른쪽 상단의 코끼리모양의 새로고침을 해주거나 옆 사이드에 있는 Gradle 탭에서 새로고침을 해주면된다.