티스토리 뷰

반응형

 

iOS 개발을 할때 운영하는 프로젝트에 TDD를 적용할 수 있는데요. TDD란 Test Driven Development라고 합니다. 테스트코드를 작성하고, 테스트 자동화 적용을 통해서 개발자가 작성한 코드의 신뢰도를 향상시킬 수 있습니다. 

오늘은 간단하게 Xcode에서 iOS앱 테스트코드 작성을 위해 단위테스트, UI 테스트를 위해 사용할 수 있는 UnitTest, UITest Target을 생성하고, 테스트코드를 작성할 준비를 하는 방법을 알아보겠습니다.

 


iOS 프로젝트 신규 생성 시에 Test Target 생성 하는 방법

Xcode 실행 -> Command + Shift + N 을 하면 프로젝트 생성 페이지가 나옵니다. 이후 프로젝트 이름을 설정하는 페이지 하단에 Include Tests 혹은 Tests 추가와 관련된 옵션을 체크한 뒤 프로젝트를 생성하면 됩니다.

 


UnitTests, UITests Target 제외하고 프로젝트를 생성했을때

혹여나 본인의 프로젝트에 UnitTests, UITests Target을 추가하지 못했다고 하더라도, 언제든지 편하게 Target을 생성할 수 있습니다. 본인의 프로젝트 파일 -> 본인의 메인 앱 Target 선택 -> Editor -> Add Target 을 선택하세요.

 

iOS -> test 키워드만 검색하면 UI Testing Bundle, Unit Testing Bundle을 선택해서 생성할 수 있습니다.

 

 


생성한 UITests, UnitTests 타겟 테스트 코드 동작이 잘 안될때 확인할 사항

테스트 코드를 작성하고 테스트하려고 하는데, 위와 같은 에러나 기타 다양한 에러가 발생할 수 있는데, 보통 사소한 설정 누락때문에 발생합니다. 

 

각 Test Target을 선택하고, 우측 네비게이터의 Target Membership이 정상적으로 설정되어있는지 확인합니다.

 

 

각각의 Target에 대한 정보에서 본인이 테스트 하려는 Deplyment Info가 정확한지 확인합니다. 또한 그 아래 Testing 섹션의 Host Application이 정상적으로 선택되어있는지 확인해줍니다.

예를들어, 본인의 앱 프로젝트 최소 지원 버전이 iOS14인데, 초기 생성된 UITests, UnitTests 타겟 버전이 iOS15 ~16 등으로 설정될 경우 테스트의 제한이 생길 수 있으니, 테스트 목적에 맞게 설정값을 확인해줍니다.

 


UITests, UnitTests 테스트코드 작성 및 동작방법

이제 UITests 혹은 UnitTests Target을 생성했다면, 해당 Target에 자동적으로 위와 같은 파일이 생성됩니다. 그 안에서 테스트코드를 작성하고, 동작시킬 수 있습니다.

기본적으로 생성되어있는 Tests 객체는 기본적으로 다양한 테스트 코드 작성 관련 기능을 제공하는 XCTestCase class를 상속받고 있습니다. 해당 객체 좌측의 다이아몬드 모양 버튼을 선택하면, 해당 객체에 정의된 모든 Test method를 일괄 실행 시킬 수 있습니다.

가장 크게 사용될 수 있는 메서드로는 각각의 테스트코드가 실행되기 전, 공통적으로 동작시킬 코드를 작성할 수 있는 setUp(), 실행 된 이후 실행되는 tearDown() 메서드가 있습니다. 그 외에도 다양한 메서드를 XCTestCase에서 제공하고 있습니다.

 

 

테스트 동작이 가능한 메서드를 작성하기 위해서는 해당 메서드 명의 prefix가 "test" 로 되어있어야 합니다. 그렇게 되면 위와 같이 메서드 좌측에 다이아몬드 모양 버튼이 보입니다. 이 버튼을 통해 해당 테스트 메서드 코드를 동작시킬 수 있어요.

위 코드는 앱을 실행하는 코드를 작성하고 있습니다. 앱을 실행한 이후, 비즈니스로직 체크나, UI 상호작용 관련 정상동작 확인을 위해서XCTAssertEqual, XCTAssertTrue 등의 다양한 assert 기능을 사용할 수 있습니다.

 

 

Xcode 우측의 6번째 탭에 위치한 Test Navigator 에서 테스트가능한 케이스를 한눈에 관리할 수 있습니다. 또한 우측의 다이아몬드 버튼을 누르면 해당 Target 전체 혹은, 선택한 일부 Test Code만 동작시킬 수 있습니다.

 


오늘은 iOS앱 개발 간 TDD를 적용하기 위해, 테스트코드를 작성하기 위해 UnitTest UITest Target을 생성하고, 테스트코드를 동작시키는 기본적인 방법을 알아보았습니다. 

관련 의견 및 질문, 댓글로 부탁드립니다. 즐거운 하루 되세요. 감사합니다. 🤗

 

 

반응형
댓글
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함