機能追加: FirestoreClientType プロトコルを追加 - #69
Merged
Merged
Conversation
FirestoreClient (actor) のモック可能な抽象化レイヤーとして FirestoreClientType プロトコルを導入。 - 全パブリックメソッド(21メソッド)をプロトコル要件として定義 - デフォルト引数を提供する convenience extension を追加 - FirestoreClient の既存APIに変更なし(後方互換性100%) - writeTransaction は複雑なシグネチャのため除外 これにより、依存先プロジェクトで Mockolo 等を使用した ユニットテスト用モックの生成が可能になる。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
概要
FirestoreClient(actor) のモック可能な抽象化レイヤーとしてFirestoreClientTypeプロトコルを追加します。背景
FirestoreClientは actor であるため、Mockolo 等のモック生成ツールでモッククラスを生成できないany FirestoreClientTypeとしてモック注入が可能になる主要な変更点
新規ファイル:
Sources/Firestore/FirestoreClientType.swiftFirestoreClientTypeプロトコル定義(21メソッド)/// @mockableアノテーション付き(Mockolo対応)変更ファイル:
Sources/Firestore/FirestoreClient.swiftextension FirestoreClient: FirestoreClientType {}を追加(2行のみ)設計判断
asyncwriteTransaction除外WritableKeyPath+ tuple closure の複雑なシグネチャ。必要時に追加可能後方互換性
100% 後方互換
FirestoreClientAPI は一切変更なしテスト
swift build(Xcode toolchain Swift 6.2.3): ✅ ビルド成功レビューポイント
FirestoreClientと正確に対応しているかwriteTransaction以外に除外すべきメソッドがないか