[Swift]タイプのインスタンスと頭文字Liserをテストしますか?


n/a.結論
SWIFTに存在するタイプインスタンスの作成と初期化は、頭文字Riserによって保証されるため、テストは必要ありません.逆に,init?()などの失敗する可能性のある頭文字登録はテスト対象である.
学習ユニットテストでは,どのような内容がテストの目標になるかを考慮した.たとえば、タイプのインスタンスが正常に作成されたかどうかを判断するのもテストだと思います.ユニットテストキットで次のテストを行いました.
// MARK: - Person class
class Person {
    let name: String
    var age: Int
    
    init(name: String, age: Int) {
        self.name = name
        self.age = age
}

// MARK: - Test method for initailizing person class
func testInitializingPerson_whenNameAndAgeAreGiven_hasGivenNameAndAge() {
    let ryan: Person = Person(name: "Ryan", age: 3)
    
    XCTAssertEqual(ryan.name, "Ryan")
    XCTAssertEqual(ryan.age, 3)
}
結果はもちろん成功!今まで当たり前だったことは何もないと思っていたので、すべてをテストすべきだと思います.しかし、コードのコメントを受けた結果、init?()のような失敗する可能性のあるアルファベットライターでなければ、アルファベットライター自体をテストする必要はないと結論した.
コメント内容:
うん.swiftインスタンスの最大の利点の1つは、initがインスタンスの作成と初期化を保証することです.そのためinitを検証する必要はありません.
init? たとえば、init自体をテストする必要はありませんが、検証が必要です.
SWIFT言語ガイドの初期化内容を見るとなぜかわかるはずです
じゃ、すぐ探してみましょう.

Source: The Swift Programming Language (Swift 5.4) - Initialization
公式文書Initializationにあります.作成した新しいインスタンスが最初に使用される前に、初期化(初期化)を正しく行うことが初期化器の役割です.失敗する可能性のあるアルファベットタグに加えて、インスタンスの作成テストを省略できます.