Unit tests best practices in Xcode and Swift

Unit Test를 작성하는 것은 앱 코드를 작성하는것 만큼 중요하다

Unit Test 는 기한이 짧을때 가장 먼저 건너뛰는 경우가 많지만 결국 프로젝트 속도가 느려질 수 있음.

프로젝트가 성장하고 대부분의 앱 로직을 다루기 위해서는 많은 Unit Test를 작성해야함.

What is unit testing?

코드 단위별로 Unit Test를 실행하여 유효성을 검사한 후 의도한 대로 동작하는지 확인하는 자동화된 테스트

/// A simple struct containing a list of users.
struct UsersViewModel {
    let users: [String]

    var hasUsers: Bool {
        return !users.isEmpty
    }
}

/// A test case to validate our logic inside the `UsersViewModel`.
final class UsersViewModelTests: XCTestCase {

    /// It should correctly reflect whether it has users.
    func testHasUsers() {
        let viewModel = UsersViewModel(users: ["Antoine", "Jaap", "Lady"])
        XCTAssertTrue(viewModel.hasUsers)
    }
}

Your mindset when writing unit tests

양질의 단위 테스트를 작성하기 위한 휼율한 출발점

아래 3가지 원칙을 통해 앱에 가장 필요한 테스트를 작성

Your test code is just as important as your application code

앱 코드를 작성할 때와 마찬가지로 테스트를 위한 코드도 최선을 다해야함.

100% code coverage should not be your target

테스트를 작성할때 적용가능 범위가 100%가 되도록 하는 것을 목표로 해선 안됨

가장 중요한 비지니스 로직을 테스트 한다

https://www.avanderlee.com/wp-content/uploads/2019/09/unit-test-code-coverage.png