[Test] Quick / Nimble

한지민·2022년 6월 27일
0

Test

목록 보기
3/3
post-thumbnail

...?

Quick
Swift와 Obj-c를 위한 BDD 프레임워크.

Quick

Nimble
Swift와 Ojb-c를 위한 Matcher 프레임워크.

Nimble

구성

XCTestCase를 상속받은 QuickSpec을 상속받아 테스트를 구현하게 된다.

  • describe
    테스트 상황 명시

  • context
    테스트 행위 명시

  • it
    테스트의 결과 명시 및 assertion 작성

  • before/afterSuite
    Suite 실행, 종료 시 1회 호출

  • before/afterEach
    선언 위치에 따라 suite, describe, context, it 실행, 종료 시 호출

  • expect
    XCTAssert 계열 함수를 대체하는 Nimble Matcher

예시

이전 예제에서 사용한 테스트 케이스를 Quick, Nimble을 사용해 작성하면 다음과 같다.

override func spec() {
    var sut: Calculator!
    
    beforeSuite {
        sut = Calculator()
    }
    
    afterSuite {
        sut = nil
    }
    
    describe("계산기 사용 중") {        
        context("덧셈 기능 실행 시") {
            var lValue: Int!
            var rValue: Int!
            
            beforeEach {
                lValue = 30
                rValue = 10
            }
            
            afterEach {
                lValue = nil
                rValue = nil
            }
            
            it("두수의 합이 나와야한다.") {
                expect(sut.add(lhs: lValue, rhs: rValue)).to(equal(lValue + rValue))
            }
        }
        
        context("곱셈 기능 실행 시") {
            var lValue: Int!
            var rValue: Int!
            
            beforeEach {
                lValue = 20
                rValue = 35
            }
            
            afterEach {
                lValue = nil
                rValue = nil
            }
            
            it("두수의 곱이 나와야한다.") {
                expect(sut.multiple(lhs: lValue, rhs: rValue)).to(equal(lValue * rValue))
            }
        }
    }
}

테스트 성공 시

테스트 실패 시

보다 자세한 내용은 이곳을 확인해주세요.

profile
IOS Developer

0개의 댓글