Skip to content

Unit Test

Han-Gyeol Lee edited this page Feb 25, 2019 · 18 revisions

모듈화

모듈화

Test Case

테스트 대상이 늘어나면서 모든 테스트 케이스를 여기에 기록하기 힘들게 되었습니다.

이 곳에 있는 테스트 파일을 참고해 주세요.

이 곳에서 코드 커버리지를 확인할 수 있습니다.

DustObservatoryManager

NetworkManager 주입

Coverage: 100.0%

requestObservatory(numberOfRows:pageNumber:completion:)

  • 원하는 로직을 잘 처리하는지
    • 관측소 정보에 관한 XML 데이터를 잘 파싱하여 내려줌 (ObservatoryResponse)
  • 에러를 캐치하는지
    • HTTPError 에러들을 캐치하는지
    • DustError 에러들을 캐치하는지
    • XMLError 에러들을 캐치하는지
  • 데이터가 nil 일 때 에러를 캐치하는지

DustInfoManager

NetworkManager 주입

Coverage: 100.0%

request(dataTerm:numberOfRows:pageNumber:completion:)

  • 원하는 로직을 잘 처리하는지
    • 대기 정보에 관한 XML 데이터를 잘 파싱하여 내려줌 (DustResponse)
  • 에러를 캐치하는지
    • DustError 에러들을 캐치하는지
    • HTTPError 에러들을 캐치하는지
    • XMLError 에러들을 캐치하는지
  • 데이터가 nil 일 때 에러를 캐치하는지

DustInfoService

DustInfoManager 주입

Coverage: 95.3%

requestRecentTimeInfo(completion:)

  • 원하는 로직을 잘 처리하는지
    • 대기 정보에 관한 XML 데이터를 잘 파싱한 후 최근 시간에 대한 정보를 뽑아내어 내려줌 (RecentDustInfo)
  • 에러를 캐치하는지

requestDayInfo(completion:)

  • 원하는 로직을 잘 처리하는지
    • 대기 정보에 관한 XML 데이터를 잘 파싱한 후 오늘 하루에 대한 정보를 뽑아내어 내려줌 ([Hour: Int])
    • 24시 전체에 대한 정보가 담기지 않은 경우 나머지 시간대를 0으로 패딩하여 내려줌 ([Hour: Int])
  • 에러를 캐치하는지

requestDayInfo(from:to:completion:)

  • 원하는 로직을 잘 처리하는지
    • 대기 정보에 관한 XML 데이터를 잘 파싱한 후 정해진 기간에 대한 정보를 뽑아내어 내려줌 ([Date: [Hour: Int]])
  • 에러를 캐치하는지

HealthKitService

HealthKitManager 주입

Coverage: 97.0%

requestTodayStepCount(completion:)

  • 원하는 로직을 잘 처리하는지
    • 오늘의 걸음 수를 내려줌 (Double)
  • 에러를 캐치하는지

requestTodayDistance(completion:)

  • 원하는 로직을 잘 처리하는지
    • 오늘의 걸음 거리를 내려줌 (Double)
  • 에러를 캐치하는지

requestTodayDistancePerHour(completion:)

  • 원하는 로직을 잘 처리하는지
    • 오늘 하루의 시간당 걸음 거리를 뽑아내어 내려줌 ([Hour: Int])
  • 에러를 캐치하는지

requestDistancePerHour(from:to:completion:)

  • 원하는 로직을 잘 처리하는지
    • 정해진 날짜 동안에 해당 날짜의 시간당 걸음 거리를 뽑아내어 내려줌 ([Date: HourIntakePair])
  • 에러를 캐치하는지

CoreDataService

CoreDataUserManager / CoreDataIntakeManager 주입

Coverage: 98.9%

requestLastAccessedDate(completion:)

  • 원하는 로직을 잘 처리하는지
    • 마지막 실행 날짜를 내려줌 (Date)
  • 에러를 캐치하는지

saveLastAccessedDate(completion:)

  • 원하는 로직을 잘 처리하는지
    • 마지막 실행 날짜를 저장함
  • 에러를 캐치하는지

requestIntakes(from:to:completion:)

  • 원하는 로직을 잘 처리하는지
    • 정해진 기간에 대한 먼지 흡입량 데이터를 뽑아내어 내려줌 ([Date: (Int?, Int?)])
  • 에러를 캐치하는지

saveIntake(fineDust:ultrafineDust:at:completion:)

  • 원하는 로직을 잘 처리하는지
    • 특정 날짜에 대한 먼지 흡입량 데이터를 저장함
  • 에러를 캐치하는지

FeedbackListService

JSONManager 주입

Coverage: 98.7%

fetchFeedbackCount()

  • 원하는 로직을 잘 처리하는지
    • 피드백 정보 개수를 잘 가져오는지 (Int)

fetchFeedbackByResentDate()

  • 원하는 로직을 잘 처리하는지
    • 피드백 정보를 최신순으로 잘 가져오는지 ([DustFeedback])

fetchFeedbackByTitle()

  • 원하는 로직을 잘 처리하는지
    • 피드백 정보를 제목순으로 잘 가져오는지 ([DustFeedback])

fetchFeedbackByBookmark()

  • 원하는 로직을 잘 처리하는지
    • 피드백 정보를 즐겨찾기순으로 잘 가져오는지 ([DustFeedback])

saveBookmark(by: )

  • 원하는 로직을 잘 처리하는지
    • 즐겨찾기한 글의 제목이 잘 저장되는지

deleteBookmark(by: )

  • 원하는 로직을 잘 처리하는지
    • 즐겨찾기한 정보의 제목이 잘 삭제되는지

fetchFeedback(by: )

  • 원하는 로직을 잘 처리하는지
    • 제목으로 특정 피드백 정보를 잘 가져오는지 (DustFeedback)

fetchRecommendedFeedbacks(by: )

  • 원하는 로직을 잘 처리하는지
    • 현재 흡입량 상태로 추천 피드백 정보를 잘 가져오는지 ([DustFeedback])

fetchFeedbacks(by: )

  • 원하는 로직을 잘 처리하는지
    • 특정 중요도 정보를 잘 가져오는지 ([DustFeedback])

IntakeService

CoreDataService / DustInfoService / HealthKitService 주입

Coverage: 99.3%

requestTodayIntake(completion:)

  • 원하는 로직을 잘 처리하는지
    • 오늘 하루 동안의 먼지 흡입량 데이터를 계산하여 내려줌 (Int)
  • 에러를 캐치하는지

requestIntakesInWeek(completion:)

  • 원하는 로직을 잘 처리하는지
    • 앱 내부에 일주일치 정보가 모두 있는 경우, 내부 데이터만 활용하여 내려줌 ([Int])
    • 앱 내부에 일부 정보만 있는 경우, 빈 정보에 대해서는 네트워킹을 통하여 내려온 데이터와 합쳐 최종 결과를 내려주는지 ([Int])
  • 에러를 캐치하는지