[내일배움캠프] 캠프 17주차 - 3/11(월) #TDD #MVVM Test

0
post-thumbnail

📝TIL

TDD

📌참고 자료: TDD 방법론 (테스트 주도 개발) | Inpa Dev

  • TDD(Test Driven Development) : 테스트 주도 개발
    - 반복 테스트를 이용한 소프트웨어 방법론
    • 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계 반복
    • 짧은 개발 주기의 반복에 의존하는 개발 프로세스
    • Agile 방법론 중 하나인 Extreme Programming(XP)의 Test-First 개념에 기반
  • ➕ Agile 방법론의 특징:
    • Incremental development
      • developed as a series of versions/increments
      • small & frequent releases
      • iterative approach
    • Customer Involvement
      • full-time customer engagement with team

  • ➕ Extreme Programming(XP)
    • A very influential agile method
  • Key XP practices:
    • Refactoring
    • Test-First development
    • Pair Programming
  • TDD 개발 주기
    • (1) RED: 실패하는 테스트 추가
    • (2) GREEN: 테스트를 통과하는 최소한의 코딩
    • (3) REFACTOR: 테스트를 통과하는 코드 리팩토링
    • (4) (1)로 돌아가 반복
  • 유의할 점:
    • 실패하는 테스트 코드를 작성할 때 까지 실제 코드를 작성하지 않는 것
      -> 정확한 요구사항에 집중
    • 실패하는 테스트를 통과하는 최소한의 코드를 작성해야하는 것
      -> 불필요한 설계 피함

MVVM 테스트 하기

📌참고 자료: MVVM 테스트 하기 - ViewModel 테스트 | 알고싶은 승민

  • 용어 정리
    • 관심 객체: 테스트 시점에 검증할 객체
    • 외부 객체: 관심 객체의 의존성에 해당하는 객체
    • 모의 객체(Mock): 실제 객체를 모방한 객체, 동일한 인터페이스를 가지지만 실제로 속은 빈 객체
    • Stub: 모의 객체를 실체로 임의로 정하는 행위
  • 테스트를 진행할 때,
    • 관심 객체는 실제 객체 설정
    • 외부 객체는 복잡한 경우 모의 객체 설정
    • 관심 객체에서 외부 객체의 함수를 호출할 때의 반환 값 지정 = 함수 Stub
  • MVVM 테스트를 할 때
    • 관심 객체: ViewModel -> ViewModel의 상태 변화 검증
    • 외부 객체: Repository -> Repository의 함수 호출 여부
  • ViewModel 테스트는 View와는 아무런 상관이 없음!
    • 테스트 코드에서 ViewModel(관심 객체)의 함수 호출
      = ViewModel 함수의 trigger 역할
profile
Be able to be vulnerable, in search of truth

0개의 댓글