투케이2K

176. (ios/swift) 유닛 테스트 (Unit Test) 수행 방법 설명 본문

IOS

176. (ios/swift) 유닛 테스트 (Unit Test) 수행 방법 설명

투케이2K 2022. 8. 29. 15:47
반응형

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : SWIFT

 

[요약 설명]

    /**
     * // -----------------------------------------
     * TODO [유닛 테스트 설명 및 사용 이유]
     * // -----------------------------------------
     * 1. 유닛 테스트는 프로그래밍에서 소스 코드의 특정 모듈이 의도된 대로 정확히 작동하는지 검증하는 절차입니다
     * // -----------------------------------------
     * 2. 유닛 테스트는 모든 함수와 메소드에 대한 테스트 케이스(Test case)를 작성하는 절차입니다
     * // -----------------------------------------
     * 3. 유닛 테스트는 필요한 부분만 테스트를 수행할 수 있으므로 전체 빌드 후 테스트를 수행하는 방법 보다 시간을 단축할 수 있습니다
     * // -----------------------------------------
     * 4. 유닛 단위는 메소드 및 클래스 등이 될 수 있습니다
     * // -----------------------------------------
     * 5. 전체 프로젝트 시간이 짧은 경우 유닛 테스트를 생략하는 경우가 많지만 추후 리팩토링을 고려해서 유닛 테스트를 진행하면서 개발하는 것이 좋습니다
     * // -----------------------------------------
     * */
 

[그림 설명]

 

[Calculator : 소스 코드]

import Foundation
import UIKit

public class Calculator {
    
    
    /*
     * // -----------------------------------------
     * TODO [클래스 설명]
     * // -----------------------------------------
     * 1. 더하기 (add), 빼기 (minus) 연산 수행 계산 클래스
     * // -----------------------------------------
     * 2. 유닛 테스트 작성 : swiftTestTests
     * // -----------------------------------------
     * */
    
    
    
    // [더하기 수행 메소드 정의]
    func add (one:Int, two:Int) -> Int {
        return one + two
    }
    
    
    // [빼기 수행 메소드 정의]
    func minus (one:Int, two:Int) -> Int {
        return one - two
    }
    
    
}
 

[swiftTestTests : 소스 코드]

//
//  swiftTestTests.swift
//  swiftTestTests
//
//  Created by 601559965 on 2022/08/29.
//

import XCTest

// [전체 프로젝트 import 수행 실시]
@testable import swiftTest

class swiftTestTests: XCTestCase {
    
    
    /*
     * // -----------------------------------------
     * TODO [클래스 설명]
     * // -----------------------------------------
     * 1. 유닛 테스트 클래스
     * // -----------------------------------------
     * 2. XCTAssertEqual(예상 기대 결과, 메소드 지정 및 파라미터 삽입);
     * // -----------------------------------------
     * 3. 성공 (passed) / 실패 (failures) 표시
     * // -----------------------------------------
     * */

    
    // [테스트 메소드가 실행 되기 (전)]
    override func setUpWithError() throws {
    }

    
    // [테스트 메소드가 실행 된 (후)]
    override func tearDownWithError() throws {
    }

    
    // [테스트 케이스 : XCTAssert]
    func testExample() throws {
        
        // [정상 동작 >> 성공 (passed) 가 표시되는 지 확인]
        XCTAssertEqual(5, Calculator().add(one: 2, two: 3))
        
        // [에러 발생 작성 >> 에러가 표시되는지 확인]
        //XCTAssertEqual(0, Calculator().minus(one: 2, two: 3))
    }

    
    
    // [테스트 케이스 : Time Check]
    func testPerformanceExample() throws {
        measure {
            // Put the code you want to measure the time of here.
        }
    }

}

 

반응형
Comments