Mac Plus

Hello Swift

UnitTest 사용하기

개발하면서 유닛테스트라는게 있다는건 알고있었지만 활용하지는 않았다. 그러다보니 몇글자 바꾸지 않았는데 빌드를 계속 돌려야 하고 버리는 시간들이 많이 생겨나면서 유닛테스트의 필요성을 느끼게 되는것 같아서 활용해 보고자 함

struct Test {
    let str: String
    var isBool:Bool {
        get {
            return str.count > 2 && str.count < 5
        }
    }
}

프로젝트에 이런 구조체나 클래스가 있다고 가정한 뒤에 유닛테스트에서 필요한 테스트를 진행해준다.
처음엔 거추장스럽고 귀찮아지겠지만 프로젝트 단위가 점점 커지다보면 생각보다 효율성이 올라갈꺼같다.
import XCTest
@testable import ReactorKit_Sample

class ReactorKit_SampleTests: XCTestCase {

    //초기화 코드(시작되기전에 한번 호출된다)
    override func setUp() {
        // Put setup code here. This method is called before the invocation of each test method in the class.
    }

    //해체코드(끝날때 한번 호출된다)
    override func tearDown() {
        // Put teardown code here. This method is called after the invocation of each test method in the class.
    }

    func testExample() {
        // This is an example of a functional test case.
        // Use XCTAssert and related functions to verify your tests produce the correct results.
    }

    func testPerformanceExample() {
        // This is an example of a performance test case.
        self.measure {
            // Put the code you want to measure the time of here.
        }
    }

    func testVanillaLeapYear() {
        let test = Test(str: "abcd")
        XCTAssertTrue(test.isBool)
    }
    func testAnyOldYear() {
        let test = Test(str: "a")
        XCTAssertTrue(!test.isBool)
    }
    func testCentury() {
        let test = Test(str: "qwert")
        XCTAssertTrue(!test.isBool)
    }    
}