목록 보기
뱅크샐러드 iOS팀이 숨쉬듯이 테스트코드 짜는 방식 3편 - 스펙별 단위 테스트
프론트엔드

뱅크샐러드 iOS팀이 숨쉬듯이 테스트코드 짜는 방식 3편 - 스펙별 단위 테스트

뱅크샐러드
뱅크샐러드
2022년 5월 30일

두줄요약

iOS 앱의 스펙별 단위 테스트를 쉽게 만드는 TestUtility와 RxTestCase 구조를 소개했습니다. 로깅·화면 전환부터 TDD를 단계적으로 확장하는 방식을 제안합니다.

구조와 흐름

  • TestUtility 모듈로 given-when-then 형식의 단위 테스트 기반 제공
  • RxTestCase로 TestScheduler, 이벤트 입력 생성, 결과 이벤트 관측 보일러플레이트 축소
  • EventLoggingTestCase와 PresentableLogicTestCase로 로깅·화면 전환 스펙별 테스트 형식 표준화

선택 이유

  • 입력과 출력의 명확한 분리로 Rx 비동기 로직 테스트 가독성 향상
  • 반복적인 테스트 코드를 서브클래스로 추상화해 짧고 일관된 테스트 작성 지원
  • 육안 확인이 어려운 로깅과 여러 폼 조건을 포괄하는 내비게이션 로직의 우선 검증

주의할 점

  • Presentable enum의 직접 비교 제약을 CustomDebugStringConvertible 기반 문자열 비교로 우회
  • 모든 영역의 즉각적인 TDD 적용보다 테스트하기 쉬운 스펙부터 단계적 확장

적용해볼 점

  • 로깅 로직을 TDD 적용의 시작 규칙으로 지정
  • 테스트 코드가 신뢰 가능한 스펙 문서가 되도록 중요한 요구사항과 누락하기 쉬운 요구사항 우선 표현

다음 읽기

#iOS 주제를 이어서 읽기

뱅크샐러드 iOS팀이 숨쉬듯이 테스트코드 짜는 방식 2편 - 화면 단위 통합 테스트

iOS 화면 테스트를 이미지 스냅샷과 AXSnapshot으로 나누어 개발·QA 흐름에 적용했습니다. 화면 확인 시간을 줄이고 접근성 및 UI 회귀를 자동 검증하는 방식을 소개합니다.

뱅크샐러드
뱅크샐러드
프론트엔드

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...