테스트 방법 질문드립니다..!
안녕하세요~~
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명이 나오는지, 이름 순으로 정렬이 되어있는지 정도를 테스트 하겠죠.
테스트 반복하기 관련 질문입니다
0
103
1
Testcontainers ddl-auto 동작 시점
0
221
2
testcontainers DB 공유 이슈
0
239
2
질문있습니다.
0
334
3
동시성 테스트는 어떻게 작성해야하는지 궁금합니다.
2
1234
0
안녕하세요, 테스트의 displayName 관련 질문이 있습니다!
0
469
0
intellij 테스트 실행시 engine 이 나오게 하는 방법이 궁금합니다.
0
412
0
thenThrow() 안에는 runtime 익셉션만 선언가능한가요?
0
1348
1
안녕하세요 @BeforeAll관련해서 질문이 있습니다.
0
390
1
Test 중단 방법(?)
1
428
1
junit 프로퍼티
1
411
1
강의 섹션별 Git Code
1
365
1
Gradle 프로젝트
0
359
1
강의 문서
0
398
1
if나 case를 통한 분기와 Assumptions의 차이점 문의
1
380
1
Study .setOwnerId( id ) 로 예제를 구성하신 이유가, 특정한 시나리오를 가정하기 때문인가요?
0
319
1
Mock에 Stubbing 중 발생하는 에러
0
3987
1
제 블로그에 공부 내용을 정리해도 될까요?
1
382
1
@Order와 @Order가 없는 순서가 있는 케이스
0
440
1
enum은 또 "이늄"인가요?
-5
1710
2
"assume" 발음이 "어줌"인가요?
-7
1621
4
검색을 해도 해결이 안되어 질문드립니다
0
2211
1
test 환경의 다른 컨테이너(Mock 어플리케이션)
0
379
2
중복 저장
0
299
1





