문자열의 Any 및 Enum case는 문자열입니다.

7671 단어 XCTestSwift
Macpin, 디버깅, 테스트에서 사용할 수 있기 때문에 어떤 상황을 사용할 수 있는지 기록해야 한다.

문서

  • String(describing:)
  • https://developer.apple.com/documentation/swift/string/2427941-init
  • 환경


    이 글의 코드는
  • Xcode 11.2.1
  • 에 설명된 해당 매개변수의 값

    id 타입이 흔들릴 때.


    id의 유형은 난잡합니다. String이나 Int가 될 수 있습니다.
    이동하고 싶을 때 사용할 수 있다
    let id1: Any = "1" // String
    let id2: Any = 1 // Int
    
    String(describing:)을 사용하면 내용이 틀리지 않고 String으로 바뀝니다.
    let stringId1 = String(describing: id1) // "1"
    let stringId2 = String(describing: id2) // "1"
    
    그럼 이런 작법은 필요 없겠지
    // value のタイプは Any 
    if let value = value as? String {
        return value
    } else if let value = value as? Int {
        return String(value)
    } else {
        // ry
    }
    

    enum 이름 인쇄


    참여한 프로젝트에는 이런 테스트 조수가 있다.
    // 定義された enum
    enum FruitType: Int {
        // Just put some random numbers over here
        case dragonFruit = 777
        case apple = 988
    }
    
    // テストヘルバ
    func createActivity(type: FruitType, raw: Int) {
        XCTContext.runActivity(named: "") { _ in
            XCTAssertEqual(raw, type.rawValue)
        }
    }
    
    // テストケース
    import XCTest
    @testable import YourTargetName
    
    class FruitTypeTests: XCTestCase {
        func testDefinitions() {
            XCTContext.runActivity(named: "test definitions of FruitType's cases") { _ in
                createActivity(type: .dragonFruit, raw: 777)
                createActivity(type: .apple, raw: 988)
            }
        }
    }
    
    테스트 조수 중name을 정의하지 않았기 때문에 테스트 결과는 이렇게 잘 알려지지 않은 보고서가 됩니다.

    name의 매개 변수에rawValue를 넣을 수도 있지만, 이해하기 어렵다.그런 마음이 들어요.

    어쨌든 상자 이름을 표시하고 싶어요!


    개선을 위해 이렇게 조수를 개조해 보면
    func createActivity(type: FruitType, raw: Int) {
        let typeName = String(describing: type)
        XCTContext.runActivity(named: "test the raw value of .\(typeName) is \(raw)") { _ in
            XCTAssertEqual(raw, type.rawValue)
        }
    }
    
    테스트 보고서도 그렇습니다.

    다그치다


    아무튼 두 개 써봤어요!여기서 마치겠습니다.
    이상한 점, 잘못된 점, 댓글란에 꼭 가세요.

    마지막


    대만산 용과는 아주 맛있어요!

    좋은 웹페이지 즐겨찾기