iOS unit test

ChangJin·2023년 8월 7일
0

iOS

목록 보기
3/6
post-thumbnail

Unit Test란?

Unit Test는 컴퓨터 프로그래밍에서 소스 코드의 특정 모듈이 의도된 대로 정확히 작동하는지 검증하는 절차를 말해요. 각 함수와 메소드에 대한 테스트 케이스를 작성하여 해당 모듈의 동작을 확인하고, 코드 변경으로 인해 발생할 수 있는 문제를 빠르게 파악하고 수정하는데 도움을 줘요. Unit Test를 통해 모듈의 독립성과 안정성을 검증할 수 있으며, 개발과 테스트를 더욱 효율적으로 진행할 수 있어요.

Clean Swift에서의 Unit Test

Clean Swift 아키텍처는 각각의 컴포넌트를 독립적으로 테스트할 수 있도록 설계되어 있어요. 주요한 VIP 컴포넌트(View, Interactor, Presenter)에 대해 테스트하는 방법을 알아보아요.

Xcode에서 Unit Test 시작하기

Clean Swift 기반 프로젝트에 Unit Test를 추가하는 방법은 두 가지에요.

프로젝트 생성 시 함께 추가하기: 새로운 프로젝트를 생성할 때 "Include Unit Test"와 "Include UI Tests" 옵션을 선택해요.

기존 프로젝트에 추가하기: 프로젝트 탐색기에서 오른쪽 마우스 버튼을 클릭하여 "New Unit Test Target" 또는 "New UI Test Target"을 선택해요.

테스트 코드 작성하기

Unit Test를 위한 코드 작성 순서는 다음과 같아요.

테스트 클래스 만들기: XCTestCase를 상속받는 테스트 클래스를 작성합니다. 예를 들어, TodoListInteractor를 테스트하는 클래스를 만들 수 있습니다.

class TodoListInteractorTest: XCTestCase {
    // Test properties and setup/teardown functions will go here.
}

SUT (Subject Under Test) 초기화: 테스트할 컴포넌트(예: Interactor)를 초기화하여 테스트에 사용합니다.

var sut: TodoListInteractor!

override func setUp() {
    super.setUp()
    setupTodoListInteractor()
}

override func tearDown() {
    super.tearDown()
}

func setupTodoListInteractor() {
    sut = TodoListInteractor()
}

Test LifeCycle: setUp() 함수는 각 테스트 케이스가 시작하기 전에 한 번 실행되며, tearDown() 함수는 각 테스트 케이스가 끝난 후에 실행됩니다. 이 두 함수에서는 테스트에 필요한 초기화 작업이나 정리 작업을 수행합니다.

Test Doubles: 테스트하려는 컴포넌트와 상호작용하는 다른 모듈들을 테스트용 가짜 객체로 대체합니다. Test Double의 종류는 Dummy, Stub, Fake, Spy, Mock 등이 있습니다.

Test Methods: 테스트 메소드를 작성합니다. 테스트 메소드는 test 접두어를 붙이고, 각 테스트 케이스의 입력값과 실행 조건, 기대 결과를 확인합니다.

간단히 말하면, 테스트 클래스에서 테스트할 컴포넌트와 상호작용할 때 다른 모듈들을 가짜로 대체하여 테스트를 수행합니다. 이렇게 테스트 코드를 작성함으로써 모듈의 독립성과 안정성을 검증하고, 예상치 못한 오류를 발견하고 수정하는데 도움이 됩니다.

profile
게임 프로그래머

1개의 댓글

comment-user-thumbnail
2023년 8월 7일

좋은 글 감사합니다. 자주 방문할게요 :)

답글 달기