0Pricing
Swift Academy · レッスン

XCTAssertファミリーとthrowingアサーション

XCTAssertEqual、XCTAssertThrowsError、XCTUnwrapを安全に使用します。

「XCTAssertファミリーとthrowingアサーション」はCoddyKit上の無料Swift Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSwift Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Swift Academyコースには全4レッスンが含まれています。

XCTAssert と XCTAssertTrue

条件が false の場合、XCTAssert と XCTAssertTrue は失敗します。

XCTAssert(user.isLoggedIn)
XCTAssertTrue(cart.isEmpty, "Cart should be empty after clear()")

XCTAssertFalse

条件が true の場合、XCTAssertFalse は失敗します。

XCTAssertFalse(session.isExpired, "Fresh session should not be expired")

XCTAssertEqual

2 つの値が等しくない場合、XCTAssertEqual は失敗します。両方の値が Equatable に準拠している必要があります。

XCTAssertEqual(calculator.add(2, 3), 5)
XCTAssertEqual(user.name, "Alice", "Name should match the fixture")

XCTAssertNotEqual

2 つの値が等しい場合、XCTAssertNotEqual は失敗します。

XCTAssertNotEqual(originalHash, updatedHash)

XCTAssertNil と XCTAssertNotNil

Optional をテストします。値が nil でない場合、または nil の場合に、それぞれ失敗します。

XCTAssertNil(service.error, "No error expected after successful fetch")
XCTAssertNotNil(result, "Result should be non-nil on success")

XCTAssertThrowsError

式がエラーをスローしない場合に失敗します。必要に応じて、スローされたエラーを調べることもできます。

XCTAssertThrowsError(try parser.parse("invalid json")) { error in
  XCTAssertEqual(error as? ParseError, .invalidInput)
}

XCTAssertNoThrow

式がエラーをスローした場合に失敗します。

XCTAssertNoThrow(try parser.parse(validJSON))

XCTUnwrap

XCTUnwrap は Optional のラップを解除し、nil の場合はテストを失敗させます。guard let と XCTFail を組み合わせるよりも簡潔です。

let user = try XCTUnwrap(service.currentUser)
XCTAssertEqual(user.name, "Bob")

精度を指定した XCTAssertEqual

浮動小数点数を比較する場合は、精度による誤差を考慮するために accuracy の値を指定します。

XCTAssertEqual(result, 3.14159, accuracy: 0.0001)

カスタム失敗メッセージ

すべての XCTAssert 関数は、失敗時の出力を明確にするためのオプションの message パラメーターを受け取ります。

XCTAssertEqual(items.count, 3, "Expected 3 items after insert, got \(items.count)")

XCTExpectFailure

想定される失敗をマークすると、CI では成功として報告できます。既知ですが未修正のバグに役立ちます。

XCTExpectFailure("Known issue: rdar://12345") {
  XCTAssertEqual(brokenFunction(), expectedValue)
}

確認問題

Optional のラップを安全に解除し、nil の場合にテストを失敗させる XCTest 関数はどれですか。

レッスンのまとめ

XCTest のアサーション群には、XCTAssert/True/False、XCTAssertEqual/NotEqual、XCTAssertNil/NotNil、XCTAssertThrowsError/NoThrow、XCTUnwrap があります。常に説明的なメッセージを追加します。追跡対象の既知の失敗には XCTExpectFailure を使用します。

よくある質問

「XCTAssertファミリーとthrowingアサーション」レッスンは無料ですか?

はい。「XCTAssertファミリーとthrowingアサーション」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Swift Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Swift Academyコースには全4レッスンが含まれています。

「XCTAssertファミリーとthrowingアサーション」で何を学びますか?

XCTAssertEqual、XCTAssertThrowsError、XCTUnwrapを安全に使用します。 ブラウザで直接実行するハンズオンコードでSwift Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Swift Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのSwift Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「XCTAssertファミリーとthrowingアサーション」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このSwift Academyレッスンでコードを書いて実行できますか?

はい。すべてのSwift Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. XCTestCaseのセットアップ、ティアダウン、テストメソッド
  2. XCTAssertファミリーとthrowingアサーション
  3. プロトコルベースのモックと依存性注入
  4. 非同期テストとパフォーマンス計測
← Swift Academyに戻る