juj7347 / SpringTutorial

0 stars 0 forks source link

테스트 코드 #43

Open juj7347 opened 2 years ago

juj7347 commented 2 years ago

실무에서는 테스크 코드가 굉장히 중요함 일반적으로 main메서드나 웹앱의 컨트롤러 등으로 테스트를하면 준비,실행에 오래걸리고 여러 케이스를 테스트하기가 힘듬

자바에는 junit 프레임워크 통해 테스트 코드 작성가능

테스트는 순서 보장을 안해줌 또한 순서가 보장되도록 테스트 코드를 설계하면 안됨(실 사용시 순서가 보장이 안된다는 점을 고려한듯?)

각 테스트 메서드의 끝에는 레포를 초기화 해주는 코드를 넣어줘야함 주로 @AfterEach 어노테이션 통해서

테스트 코드를 먼저 작성하고 그 틀에 맞추어 개발을 시작하는 것 -> TDD(테스트 주도 개발)

협업시에는 당연하고 개인 프로젝트에서도 거의 필수라고 할 수 있음. 특히 팀플에서 굉장히 중요

tip.

//given 어떤 자료가 주어졌을 떄 //when 어떤 상황에서, 실행이 되었을 때 //then ~~한 결과가 나와야된다

이 3단계로 나누어서 테스트 코드를 작성하면 도움이 됨

테스트는 정상 플로우보다 예외 플로우가 훨씬 중요함

예외상황 처리의 경우 일반적인 try catch도 가능한데 쓰기가 애매한 경우들이 생김 이때 Assertions를 이용하면 간편

테스트 코드 작성시 레포 객체를 따로 생성해서 하게되면 서비스의 레포와 테스트의 레포가 다른 레포를 사용함 따라서 DI를 통해서 레포를 주입해주면 동일한 레포에서 테스트가 가능