[Swift]タイプのインスタンスと頭文字Liserをテストしますか?
3592 ワード
n/a.結論
SWIFTに存在するタイプインスタンスの作成と初期化は、頭文字Riserによって保証されるため、テストは必要ありません.逆に,
学習ユニットテストでは,どのような内容がテストの目標になるかを考慮した.たとえば、タイプのインスタンスが正常に作成されたかどうかを判断するのもテストだと思います.ユニットテストキットで次のテストを行いました.
コメント内容:
うん.swiftインスタンスの最大の利点の1つは、initがインスタンスの作成と初期化を保証することです.そのためinitを検証する必要はありません.
init? たとえば、init自体をテストする必要はありませんが、検証が必要です.
SWIFT言語ガイドの初期化内容を見るとなぜかわかるはずです
じゃ、すぐ探してみましょう.
Source: The Swift Programming Language (Swift 5.4) - Initialization
公式文書
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
にあります.作成した新しいインスタンスが最初に使用される前に、初期化(初期化)を正しく行うことが初期化器の役割です.失敗する可能性のあるアルファベットタグに加えて、インスタンスの作成テストを省略できます.Reference
この問題について([Swift]タイプのインスタンスと頭文字Liserをテストしますか?), 我々は、より多くの情報をここで見つけました https://velog.io/@ryan-son/Swift-타입의-인스턴스-이니셜라이저를-테스트-해야할까テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol