인프런 워밍업 스터디 클럽 2기 -백앤드 클린코드,테스트코드 3주차 발자국

https://inflearn.com/course/lecture?courseSlug=practical-testing-%EC%8B%A4%EC%9A%A9%EC%A0%81%EC%9D%B8-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EA%B0%80%EC%9D%B4%EB%93%9C&unitId=144805&subtitleLanguage=ko

호덜덜 3주차..

배우고 싶었던 테스트코드 강의를 들어보았다!

 

 

 


4LS-회고법을 사용해보장!


  • Liked (좋았던 점)

     

드디어 배우고 싶었던 테스트 코드! tdd의 중요성과 이미 기능을 구현한 후 테스트코드를 작성할 경우 발생할수있는 문제점을 숙제였던 이미 리더블 코드에서 사용했던 코드에 테스트코드를 만들며 실전으로 느꼈다 :(


  • Lacked (아쉬웠던 점)

저번 리더블코드 지뢰찾기 코드 따라하다가 뭘 잘못따라했는지 제대로 작동안되서 오류가 있는거에 테스트코드를 짜려니 찜찜했다..


  • Learned (배운 점)

1- 단위 테스트

-클래스나 메서드같은 작은 단위의 테스트

Junit은 단위테스트를 위한 테스트 프레임워크

Assertj는 Junit위에 얹는 테스트코드의 작성을 돕는 test library- 체이닝 메서드로 조금더 가독성을 높힌다!

 

-암묵적인 요구사항이 있는지 생각해보기

해피케이스와 예외케이스들을 작성해야한다.+ 경계값 테스트

 

-테스트하기 어려운 영역 분리

관측할때마다 달라지는 테스트 케이스 - 시간이나 사용자가 입력하는거에 따라 달라질때.

이럴경우 테스트코드 friendly 코드로 기능을 구현을 해놓으면 한결 편안해진당!

 

2-TDD -test driven development

기능 구현후 테스트케이스를 작성할때 테스트케이스를 짤때 제약을 받을수있다.

해피케이스만 짜고 예외케이스는 자유롭게 못짜볼수있다. 이미 구현된 기능을 건드려야하니 귀찮아서..

처음부터 테스트코드를 짜면 익숙하지않아 번거롭겠지만 테스트케이스를 만들어놓으면 오히려 과감하게 리펙토링을 하고 테스트케이스를 돌려 작동되는지 바로 확인할수있어서 좋다.

기능과 기능을 검증하는 테스트수단의 상호작용.

 

3-테스트 코드는 문서다

개발자가 아닌 사람이 봐도 이 기능은 무엇을 위한것인지 어떻게 작동해야하는지 이해할수있는걸 권장한다.

테스트코드는 나의 고민의 결과를 문서화한 팀의 자산이 된다. 그만큼 중요하다.

@DisplayName("음료 한개 추가하면 주문 목록에 담긴다.") 문장으로 적어야 더 이해하기 쉽다.

성공 실패 같이 테스트 중심의 설명보다

주문 실패 X

아이탬의 갯수가 0일떄는 주문을 생성할수없다. O

 

4-BDD 스타일로 작성하기

Behavior Driven Development TDD에서 파생된 개발방법론

함수단위테스트보단 시나리오 기반의 테스트케이스 자체에 집중한다.

Given - 시나리오 진행에 필요한 모든 과정 준비

When - 시나리오 행동 진행

Then - 시나리오 진행에 대한 결과 명시, 검증

어떤 환경에서 (given) 어떤 행동을 진행했을때(when) 어떤 상태 변화가 일어난다 (then)

 


  • Longed for (앞으로 바라는 점)

다음주 화요일까지 5시간 넘는 강의 있는데 어서 호다닥 들어봐야겠당... 이번 스터디 후에는 테스트코드 만들기 고수가 되곱!


 

댓글을 작성해보세요.

채널톡 아이콘