📝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 역할