Java

Java

AssertJ의 usingRecursiveComparison로 테스트 동등성 비교하기

🎯 0. 들어가기 전 테스트 시에 검증할 대상과 expected 객체의 값이 같은지 비교하는 일이 많았다. AssertJ의 usingRecursiveComparison을 알기 전까지는 객체의 getter로 값을 직접 비교하거나, equals & hasCode를 재정의해서 비교하는 경우가 많았다. 주변 크루와 리뷰어에게 AssertJ의 usingRecursiveComparison을 배우고 편하게 테스트 코드를 작성해서 공유하고자 한다! 🎯 1. 테스트 예시 하나의 테스트 예시로 usingRecursive 사용을 해보면서 익혀보자! 장바구니 상품의 영속성을 관리해주는 CartItemDao Test 예시를 들도록 하겠다! 테스트의 when 절은 다음과 같다. // when CartItem cartItem =..

Java

[Java] Collection 복사 - 복사 방법(방어적 복사, 얕은 복사, 깊은 복사) 및 상황별 최적의 복사 방법

들어가기 전 우테코 사다리 타기 미션을 페어와 함께 진행하던 중에, 페어가 List.copyOf()를 쓰는 것을 보게 되었다. 나는 페어에게 List.copyOf()와 Collections.unmodifiableList()의 차이가 무엇인지 질문을 하게 되면서 Collection 객체 복사에 대해서 약 1시간 동안 페어와 함께 공부를 하게 되었다. 그래서 페어와 공부했던 내용들을 까먹기 전에 기록해보려고 한다. ⚙️ Collection 복사 상황 1. 생성자의 인자로 받은 객체의 복사본을 만들어서 내부 필드를 초기화하고자 할 때 2. getter 메소드에서 내부의 객체를 반환할 때 이러한 2가지 상황에서 어떠한 객체 복사를 사용해야 할지 살펴보도록 하겠다! ✅ 방어적 복사 / 얕은 복사 / 깊은 복사 복..

BE_성하
'Java' 카테고리의 글 목록