プロトコルベースのSwift依存性注入テスト 外部の依存関係(ファイルシステム、ネットワーク、iCloud)を小さく焦点を絞ったプロトコルとして抽象化することで、SwiftコードをテストしやすくするパターンI/Oなしの決定論的テストをサポートする。 起動条件 ファイルシステム、ネットワーク、または外部APIにアクセスするSwiftコードを書く場合 実際の障害を起こさずにエラー処理パスをテストする必要がある場合 異なる環境(アプリ、テスト、SwiftUIプレビュー)で動作するモジュールを構築する場合 Swift並行処理(Actor、Sendable)をサポートするテスト可能なアーキテクチャを設計する場合 コアパターン 1. 小さく焦点を絞ったプロトコルを定義する 各プロトコルは1つの外部関心事のみを処理する。 2. デフォルト(本番用)実装を作成する 3. テスト用のモック実装を作成する 4. デフォルトパラメーターで依存関係を注入する 本番コードはデフォルト値を使用し、テストはモックを注入する。 5. Swift Testingを使用してテストを書く ベストプラクティス 単一責任 :各プロトコルは1つの関心事を処理する——多くのメソッドを持つ「ゴッドプロトコル」を作らない Sendable 一貫性 :プロトコルがActor境界をまたいで使用される場合に必要 デフォルトパラメーター…