iOS/Swift

[Swift] Unit Test (2) 유닛 테스트 시작하기

YEN_ 2024. 3. 7. 21:58

2024.03.06 - [iOS/SWIFT] - [Swift]Unit Test (1) 코드 테스트의 원칙

2024.03.07 - [iOS/SWIFT] - [Swift] Unit Test (2) 유닛 테스트 시작하기

 

 

 

 

이번에는 유닛테스트를 위해 타겟을 추가하고 설정하는 법에 대해 알아볼게요

생각보다 간단하더군요

 


 

 

🩵 Test 타겟 생성

어디서든 타겟 생성하는 창으로 들어가시면 됩니다ㅎㅎ

 

1번 방법

 

2번 방법

 

3번 방법

 

 

Unit Testing Bundle 이라는 걸 추가해주시면

테스트폴더가 하나 자동으로 생길 거에요

 

 

 

만약 처음부터 테스트 코드 작성을 염두에 두고 프로젝트를 만든다면?

Include Tests를 체크하고 해주시면 됩니다ㅎㅎ

 

 

 

 

 

 

🩵 타겟과 번들?

유닛 테스트 타겟(Unit Test Target)

  • 특정 애플리케이션 또는 라이브러리 코드의 일부(유닛)를 테스트하기 위한 설정을 포함하는 프로젝트 내의 구성요소
  • 개발자가 유닛 테스트 타겟을 만들 때, 테스트할 코드와 관련된 소스 파일과 리소스를 지정
  • 타겟은 테스트 실행을 위해 빌드 시스템에 의해 별도로 컴파일되고 실행

유닛 테스팅 번들(Unit Testing Bundle)

  • 유닛 테스팅 번들은 유닛 테스트 타겟을 빌드하고 실행하기 위해 생성된 실행 가능한 파일의 집합
  • 테스트 케이스, 테스트 데이터, 그리고 테스트 실행을 위해 필요한 다른 리소스를 포함
  • 유닛 테스트 번들은 테스트 실행 환경에서 로드되어 실행되며, 테스트 케이스의 성공 여부에 대한 결과를 반환

차이점

  • 유닛 테스트 타겟 : 테스트 설정과 구성을 정의
    • 프로젝트 설정의 일부
    • 테스트할 코드의 구성 및 테스트를 위한 설정을 정의
    • 개발 환경에서 이를 구성하여 테스트 코드와 테스트 대상 코드 간의 관계를 설정
  • 유닛 테스팅 번들 : 실제 테스트 실행을 위해 생성된 물리적 파일
    • 유닛 테스트 타겟을 빌드한 결과물
    • 실제 테스트를 실행하는 데 사용되는 실행 파일과 리소스의 집합
    • 실행 시 테스트 환경에서 로드되어 테스트를 수행

 

 

 

🩵 테스트 코드 실행해보기

본격적으로 코드를 작성하기 전

테스팅 실행은 잘 되나 테스트해봐야겠죠?

 

우선 1회 Run 시키고 시작합시다!

시뮬레이터가 잘 구동되었다면 테스팅을 돌려봐야겠죠?

 

그런 다음엔 이런거...

 

혹은 이런거...

 

아니면 커맨드 + U (Testing 단축키) 를 눌러서 한 번 실행해보세요

 

시뮬레이터가 한번 꺼졌다 켜지거나, 다시 시작되면서 테스팅이 진행될거에요

저는 final class 좌측의 마름모 체크버튼으로 테스트해봤습니다

 

테스트가 성공하면 이렇게 초록불이 뜨고, 실패하면 빨간색 X 버튼이 보입니다 

 

 

여기까지가 실제 테스트 코드를 작성하기 전 생성하는 방법입니다

 


 

생각보다 간단하게 설정할 수 있죠?

다만 종종 XCode 억까(..) 가 있어서 직접 테스트플랜을 추가해줘야 하는 경우가 생길 수 있어요

제가 직접 당해서 반나절을 날렸다네요

다음에 이것도 추가로 적어볼게요ㅠㅠ

 

 

 

2024.03.06 - [iOS/SWIFT] - [Swift]Unit Test (1) 코드 테스트의 원칙

2024.03.07 - [iOS/SWIFT] - [Swift] Unit Test (2) 유닛 테스트 시작하기