오늘 첫 직장에서 첫 퇴사를 경험했다
모두가 아쉬워하고 동시에 응원해주는 걸 보면서 3개월간 열심히 했구나 싶어 뿌듯하고 감사했다
내일 당장 또 면접이 있어서 출근 시간보다 일찍 기상해야 하지만,, ㅠㅠ..
개인 여담이었고,,
오늘은 Unit Test 이야기를 정리하고자 한다
Unit Test
Unit Test는 개발 단계에서 의도에 맞게 메서드가 기능하는지 검증하는 테스트로
주로 XCode IDE에서 XCTest 프레임워크를 사용하여 구현된다
특징: 독립성, 외부 상태 의존 X, 다른 테스트 영향 X
유닛 테스트에는 FIRST 라는 기본 원칙이 존재한다
기본 원칙 FIRST
Fast:
빠른 속도로 테스트를 수행할 수 있어야 한다
Independent/Isolated:
테스트들은 서로 독립적으로 실행될 수 있어야 하며 단위 기능에 집중해야 한다
서로의 상태를 공유하지 않으며 특정 테스트의 결과가 다른 테스트에 영향을 미치지 않는다
Repetable:
반복적으로 실행될 수 있어야 한다
실행할 때마다 동일한 결과를 얻어 신뢰성을 높일 수 있다
Self-Validating:
테스트를 실행하고 결과를 확인하는 모든 과정을 자동으로 처리되어야 하며,
스스로 결과물의 옳고 그름을 판단할 수 있어야 한다
Timely:
테스트는 프로덕션 코드를 작성하기 전에 작성되어야 한다
코드 수정 후 변경 사항을 빠르게 확인할 수 있도록 한다
=> Test-Driven Development(TDD) 프로세스
XCTest
유닛 테스트를 할 수 있게 도와주는 프레임워크로
각 테스트가 독립접으로 실행되도록 메서드를 통해 도와준다
setUp(): 기본값을 생성할 때 사용
tearDown(): 초기 상태 복원시 사용
.
.
다양한 Assert 함수: 예상되는 결과와 실제 결과를 비교
XCTest에서 사용되는 전체 메서드들의 동작순서는 다음 이미지와 같다

Unit Test 사용 방법
1. XCTest 프레임워크 사용
2. Test Case 작성
- XCTestCase를 상속받는 클래스를 생성한 후, test로 시작하는 메서드를 정의해 각각의 테스트 케이스를 작성
3. Assert 사용하여 예상 결과와 실제 값 비교
4. Mock와 Stub 사용
- 외부 의존성 제거를 위해 Mock 객체나 Stub 사용
5. Test Coverage
- XCode에서 제공하는 Test Coverage 도구를 통해 분석하고 누락된 부분을 찾아내 보완
References
[Unit Test & UI Test] https://velog.io/@jeon0976/iOS-Unit-test-UI-Test
[Unit Test 사용방법] https://ios-daniel-yang.tistory.com/entry/iOSSwift-유닛-테스트Unit-Test-사용-방법
[FIRST] https://velog.io/@sdb016/좋은-단위-테스트-FIRST에-대하여
'IOS 개발지식 > iOS' 카테고리의 다른 글
| [iOS] RxSwift와 Combine (2) | 2024.11.11 |
|---|---|
| [iOS] 클린 아키텍처 (0) | 2024.11.10 |
| [iOS] AppDelegate와 SceneDelegate (2) | 2024.11.08 |
| [iOS] 앱 생명주기(App Life Cycle) (5) | 2024.11.07 |