오늘 한 일
✔️ 이슈트레커 프로젝트
✔️ 알고리즘
✔️ 그림으로 공부하는 IT 인프라 구조
✔️ 더 자바, 애플리케이션을 테스트하는 다양한 방법
- 1부 JUnit 5 1~4강
ctrl
+ shift
+ t
: 테스트 생성 단축키
ctrl
+ shift
+ r
: 테스트 실행
(메서드가 없는 빈 줄에 놓고 단축키를 실행하면 해당 클래스의 모든 테스트를 실행)
@BeforeAll
, @AfterAll
: static void만 허용
- 테스트 메서드 이름은 가독성이 좋은 snake case로 많이 작성한다고 하셔서 찾아봤더니 camel case로 작성하는게 맞는 것 같다.
- 테스트가 실패하는 이유도 적어주면 좋다.
- assertEquals를 사용하면 세 번째 파라미터에 메시지를 적어주면 되는데, 문자열 연산에 비용이 클 것 같으면 람다식을 사용해주는 것이 좋다.
- AssertJ의 assertThat에서는 as나 withFailMessage 사용를 사용하면 된다.
assertTimeoutPreemptively
: 설정한 시간이 경과하자마자 테스트를 종료
- 단 ThreadLocal을 사용하는 코드가 있다면 side effect가 발생할 수 있다.
→ 스프링 Transaction 설정이 제대로 안되어 롤백이 안되고 db에 테스트 시 실행한 결과가 반영될 수 있다.
느낀 점
- 게더에서도 유지되는 거리두기😂
- 이슈트레커 프로젝트 테스트 코드를 작성하는 중이다. Mockmvc를 이용한 테스트를 처음해봐서 응답 결과를 gson으로 파싱해서 assertThat으로 테스트하려고 했는데 보통 이렇게 안하고 JsonPath를 이용한다고 한다.
- 알고리즘 2일차 문제 풀이를 했다. 프로그래머스 level1, 2 정도는 금방 풀 줄 알았는데 생각보다 잘 못해서 6문제밖에 못 풀었다. 그래도 파이썬의 Counter나 reduce, lambda에 좀 더 익숙해질 수 있어 좋았다.
- 드디어
그림으로 공부하는 IT 인프라 구조
를 다 읽었다. 그런데 정리를 안하고 이동 시간에 읽거나 쇼파에 누워서 읽었더니 벌써부터 기억이 잘 나지 않는다. 다음주에 하루에 한 챕터씩 다시 읽어보며 정리해볼까 생각중이다.
- 백기선 님 더 자바 강의 수강을 시작했다. 일단 가볍게 앞에 강의 4개 정도만 자기 전에 들어보았다. Junit 5가 처음이 아니다보니 다 아는 내용일 줄 알았는데
assertTimeoutPreemptively
등 모르는 내용도 좀 있었다.