Unit Test 의 핵심 → FIRST
- Fast - 빠른 속도로 테스트를 수행해야 한다
- Independent - 각 테스트가 독립적으로 실행해야 한다
- Repeatable- 반복적으로 실행해야 한다. 동일한 입력값과 동일한 결과값으로 테스트 신뢰성을 높일 수 있다.
- Self-Automation- 모든 과정이 자동으로 처리해야 한다. 시간과 비용을 절약하고, 쉽게 버그를 찾을 수 있다.
- Timely - 시점에 맞게 테스트를 실행해야 한다. 코드 수정 후에 변경사항을 빠르게 테스트 할 수 있다.
XCTest - 실제 유닛 테스트를 제공하는 프레임워크, Independent를 위해 메서드를 제공한다.
XCTestCase - XCTest 하위클래스이자, 테스트를 위한 가장 기본 클래스.
Unit Test를 위한 메서드 Naming은 반드시 test로 시작해야한다.
Unit Test를 위한 기본 포맷은 Given - When - Then 구조로 작성해야한다
Unit Test에 필요한 value를 Given하여, 필요한 When에 따라서 테스트 실행하고, Then 결과를 확인한다.
- setUpWithError() :초기화 코드를 작성하는 함수로 클래스의 각 테스트 함수의 호출 전에 호출되는 함수다.정의하는 역할
- tearDownWithError() :해체 코드를 작성하는 함수로 각 테스트 함수의 호출 후에 호출되는 함수다. 정의한 것을 해제하는 역할
- testExample() :테스트 케이스를 작성하는 함수로 테스트가 올바른 결과를 생성하는지 확인하는 함수다.
- testPerformanceExample() :성능 테스트 케이스를 작성하는 함수로 시간을 측정하는 코드를 작성하는 함수다.
XCTest 전체 메서드들의 동작 순서
추후 더 공부 할 예정입니다🫠
참고
https://ios-daniel-yang.tistory.com/63
https://silver-g-0114.tistory.com/142
https://leeari95.tistory.com/60
https://sujinnaljin.medium.com/swift-mock-을-이용한-network-unit-test-하기-a69570defb41
https://zeddios.tistory.com/48