• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

테스트 방법 질문드립니다..!

21.02.04 15:31 작성 조회수 156

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명이 나오는지, 이름 순으로 정렬이 되어있는지 정도를 테스트 하겠죠.