概要
現在のテストカバレッジは8.8%(6/68ファイル)と非常に低く、CLAUDE.mdで目標とされている100%から大きく乖離しています。重要なコンポーネントのテストを段階的に追加します。
背景
- プロジェクトのCLAUDE.mdでは「テストカバレッジは100%を目標」と明記されている
- Swift Testingフレームワークを使用する方針
- 現在テストが存在するのは以下のみ:
- ObservationDataUsecaseTests
- AffineTransformTests
- AntennaAffineCalibrationTests
- SwiftDataRepositoryXCTests
- 一部のViewModelテスト(UWBViewerSystemTests内)
現状のテストカバレッジ
| レイヤー |
テスト済み |
未テスト |
カバレッジ |
| Domain/Usecase |
1/8 |
7/8 |
12.5% |
| Domain/Utils |
2/3 |
1/3 |
66.7% |
| Domain/Repository |
1/3 |
2/3 |
33.3% |
| Presentation/ViewModel |
2/14 |
12/14 |
14.3% |
| Presentation/Router |
0/4 |
4/4 |
0% |
| 全体 |
6/68 |
62/68 |
8.8% |
最優先でテストを追加すべきコンポーネント
Phase 1: 重要なUsecase(優先度:高)
Phase 2: 重要なViewModel(優先度:高)
Phase 3: Repository層(優先度:中)
Phase 4: その他のViewModel(優先度:中)
Phase 5: Router層とユーティリティ(優先度:低)
テスト戦略
- Mock/Stubの活用: Repositoryやその他の依存をモック化
- 既存テストをテンプレート化:
ObservationDataUsecaseTests.swiftをベースに
- Swift Testingフレームワークの使用: XCTestは使用しない
- 段階的な実装: Phase 1から順に実装
受け入れ条件
補足事項
- 各Phaseごとに段階的にPRを作成することを推奨
- テストカバレッジツールでカバレッジを測定しながら進める
- Mock実装を共通化してテストコードの重複を避ける
🤖 このIssueはClaude Codeによって作成されました
概要
現在のテストカバレッジは8.8%(6/68ファイル)と非常に低く、CLAUDE.mdで目標とされている100%から大きく乖離しています。重要なコンポーネントのテストを段階的に追加します。
背景
現状のテストカバレッジ
最優先でテストを追加すべきコンポーネント
Phase 1: 重要なUsecase(優先度:高)
AutoAntennaCalibrationUsecaseTests.swift- 新しく実装された重要な機能ConnectionManagementUsecaseTests.swift- デバイス接続管理の中核SensingControlUsecaseTests.swift- センシング制御の中核RealtimeDataUsecaseTests.swift- リアルタイムデータ処理FileManagementUsecaseTests.swift- ファイル管理Phase 2: 重要なViewModel(優先度:高)
AutoAntennaCalibrationViewModelTests.swiftConnectionManagementViewModelTests.swiftDataCollectionViewModelTests.swiftSensingManagementViewModelTests.swiftSensingViewModelTests.swiftPhase 3: Repository層(優先度:中)
DataRepositoryTests.swiftPreferenceRepositoryTests.swiftPhase 4: その他のViewModel(優先度:中)
FieldSettingViewModelTests.swiftFloorMapSettingViewModelTests.swiftAntennaPositioningViewModelTests.swiftFloorMapViewModelTests.swiftTrajectoryViewModelTests.swiftPhase 5: Router層とユーティリティ(優先度:低)
NavigationRouterTests.swiftSensingFlowNavigatorTests.swiftDateUtilsTests.swiftテスト戦略
ObservationDataUsecaseTests.swiftをベースに受け入れ条件
補足事項
🤖 このIssueはClaude Codeによって作成されました