[MVVM] 4. UnitTest 해보기

miori·2022년 7월 11일
0

ios-MVVM

목록 보기
6/6

mvvm 부시기 🫡

해야할 일

UnitTest를 진행해보려 한다.

Test Code

아래는 테스트 코드의 일부이다.

테스트할 내용은 다음과 같다.
이전글의 실행영상에서 상단 태그 관련된 테스트 코드이다.

테스트 할 상세 내용은 다음과 같다.
배열의 수를 제대로 반환하는지, 배열의 index에 따른 값을 제대로 반환하는지, 배열의 index에 따른 쿼리값을 잘 반환하는지를 테스트 해볼것이다.

import XCTest
@testable import JangBiBBal

class TagCollectionViewModelTest : XCTestCase {
    
    var sut : TagCollectionViewModel!
    var mockArr : [TagCellModel]!
    var mockStrArr : [String]!
    
    override func setUpWithError() throws {
        try super.setUpWithError()
        
        sut = TagCollectionViewModel()
        mockArr = [TagCellModel(tagName: "mock0"),
                   TagCellModel(tagName: "mock1"),
                   TagCellModel(tagName: "mock2")
        ]
        mockStrArr = ["searchQuery1","searchQuery2","searchQuery3"]
     
    }
    
    override func tearDownWithError() throws {
        try super.tearDownWithError()
        
        sut = nil
        mockArr = nil
        mockStrArr = nil
        
    }
    
    func test_numberOftagArr를_호출시_배열의개수를_제대로_반환하는지() {
        let arr = mockArr
        sut.tagArr = arr!
        let result = sut.numberOftagArr
        XCTAssertEqual(result, 3)
    }
    
    func test_gettagName을_호출시_index가_0일때_배열의_0번째요소를_반환하는지() {
        let arr = mockArr
        sut.tagArr = arr!
        let wantedIndex = 0
        let result = sut.gettagName(index: wantedIndex)
        XCTAssertEqual(result, mockArr[wantedIndex])
    }
    
    func test_getSearchQueryFromTag을_호출시_0일때_배열의_0번째요소를_반환하는지() {
        let arr = mockStrArr
        sut.tagQueryArr = arr!
        let wantedIndex = 0
        let result = sut.getSearchQueryFromTag(index: wantedIndex)
        XCTAssertEqual(result, mockStrArr[wantedIndex])
    }

}

위와 같이 테스트 코드 작성 후, 실행을 시켰을때 테스트를 다 통과하였다.
테스트코드 작성 결과

회고

사실 테스트 코드를 작성하기 보다는, 내가 구현한 함수를 직접 시뮬레이터에 빌드하여 하나하나 체크하면서 진행하였다.
그러다 보니 하나의 기능을 확인하는데 시간이 너무 오래 소요되었다.
하지만 테스트코드를 작성하는 연습을 하다보니, 이러한 불편함이 감소되었다.
또한 이슈가 생겼어도,어디서 이슈가 생겼는지 바로 확인할 수 있기 때문에 디버깅 시간도 감소되었다.

profile
iS를 공부하는 miori 입니다.

0개의 댓글