TestCode
JUnit 객체의 필드 값 확인하기
salmon16
2024. 7. 15. 23:02
개요
테스트 코드를 작성하다 보면 데이터베이스에 값이 잘 저장되었는지 확인하기 위해 repository에서 객체를 로드해고 테스트해야 하는 경우 객체의 필드 값을 테스트해보고 싶은 때 방법을 알아보기 위해 작성하게 되었다.
방법
아래의 코드는 stockRepository에서 저장되어 있는 모든 stocks를 조회하고 그 중 productNumber, quantity의 필드 값을 확인해 보려고 한다. 이때 extracting을 사용해 필드 값을 추출한 뒤 containsExactlyInAnyOrder를 사용해서 순서와 상관없이 두 개의 tuple을 가지고 있으면 통과한다.
List<Stock> stocks = stockRepository.findAll();
assertThat(stocks).hasSize(2)
.extracting("productNumber", "quantity")
.containsExactlyInAnyOrder(
tuple("001", 0),
tuple("002", 1)
);
만약 여러 tuple이 아니라면 아래와 같이 테스트 가능하다
assertThat(productResponse)
.extracting("productNumber", "type", "sellingStatus", "name", "price")
.contains("001", HANDMADE, SELLING, "카푸치노", 5000);