boostcampwm-2022 / android07-Puzzle

⛳퍼팅은 즐겁다!! 퍼즐
22 stars 5 forks source link

Test : 마이갤러리 페이징 기능 테스트 코드 작성 #134

Closed codejoo9098 closed 1 year ago

codejoo9098 commented 1 year ago

주요 변경 사항

테스트 의도와 결과

firstVideoList : 12개의 데이터가 담긴 리스트 extraList : 6개의 데이터가 담긴 리스트

공통 : 페이징을 딜레이 없이 연속으로 시도하면 데이터를 제대로 받아오지 못하는 이슈가 발생한다. -> 페이징 전후로 delay 함수를 배치했다.

  1. 최초 데이터 로드 후 추가 데이터가 비어있을때 리스트에 최초 데이터만 들어있는가? -> 성공
  2. 페이징이 한 번만 일어났을때 리스트에 최초 데이터와 페이징 데이터가 모두 들어있는가? -> 성공
  3. 페이징이 여러번 일어났을때, 리스트에 최초 데이터와 모든 페이징 데이터가 들어있는가? -> 성공
  4. 연속으로 페이징이 일어나는데, 마지막이 아닌 중간에 6개의 리스트가 섞여있으면 더 이상 페이징이 진행되지 않는가? -> 실패(페이징이 멈추지 않고 계속 실행된다.)
  5. 최초로 받아온 데이터가 6개면 이후에 페이징을 시도해도 페이징이 실행되지 않는가? -> 성공
  6. 페이징 도중에 실패가 일어나도 이후에 페이징을 시도했을때(똑같은 인덱스로 다시 시도) 정상적으로 실행되는가? -> 성공
  7. 페이징 도중에 빈 데이터를 받으면(똑같은 인덱스로 다시 시도) 이후에 페이징을 시도해도 더 이상 페이징이 실행되지 않는가? -> 성공
  8. 페이징 도중에 빈 데이터를 받아와도(다음 인덱스로 스킵) 이후에 페이징을 시도해도 더 이상 페이징이 실행되지 않는가? -> 성공
  9. 페이징 함수에 들어가는 인덱스 값이 일정하지 않아도 정상적으로 데이터를 받아오는가? -> 성공
  10. 처음에 빈 데이터를 받아오면 이후에 페이징을 시도해도 페이징이 실행되지 않는가? -> 실패(페이징이 계속 실행된다.)
  11. 처음에 데이터를 받아오는것을 실패하고 이후에 다시 시도하면(getMyData() 함수 다시실행) 최초 데이터와 페이징 데이터 모두 정상적으로 받아오는가? -> 성공

이슈

코루틴을 테스트하는데 runBlocking이 아니라 runTest를 사용할 수 있었다. runTest는 delay 함수를 무시하는데 테스트 환경에서 이를 무시할 수 없었기 때문에 runBlocking을 사용했다.