해결된 질문
작성
·
210
1
안녕하세요~~
JUnit테스트를 보다가 검증하는 방식에 대해서 궁금한게 있어서 질문 드립니다!
만약.. 리파지토리에서 해당 회원들을 조회하는 기능을 테스트 해보려고한다면
// when
List<User> user = UserRepository.findAll(); // 총 유저 10명
// then
여기서 테스트 하는 방법이..
User user0 = user.get(0);
assertThat(user0.getName()).isEqualTo("user0");
assertThat(user0.getAge()).isEqualTo(10);
User user1 = user.get(1);
... 반복
이런식으로 결과값을 하나씩 빼서 모든 필드를 비교해야되나요 ? 아니면 다른 방식으로 해야될까요?
ㅠㅠ 이런 경우 테스트를 어떻게 하시는지 궁금했는데.. 강의에 없어서 질문 남겨봅니다.!
답변 1
3
음.. 좋은 질문이네요. 어디까지 테스트를 해야 하느냐인데.. 저라면 findAll은 테스트 하지 않습니다. 제가 구현한 것도 아니고 스프링 데이터 JPA가 제공하는 메소드니까 스프링 데이터 JPA가 테스트를 했을테니 제가 굳이 또 테스트를 작성할 필요는 없죠.
대신 제가 직접 구현한 쿼리 또는 쿼리 메소드라면 그건 제가 직접 테스트 할 겁니다. 제가 기대했던 방식대로 동작하는지 확인하기에 충분한 코드를 작성해야겠죠.
가령 회원 이름 순으로 10명을 조회하는 쿼리를 작성했다고 가정했을 때, 10명이 나오는지, 총 5명일때는 5명이 나오는지 20명일때에도 10명이 나오는지, 이름 순으로 정렬이 되어있는지 정도를 테스트 하겠죠.