-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
リファクタリングリファクタリングを行いますリファクタリングを行います
Description
概要
現在のテストカバレッジは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(優先度:高)
-
AutoAntennaCalibrationUsecaseTests.swift- 新しく実装された重要な機能 -
ConnectionManagementUsecaseTests.swift- デバイス接続管理の中核 -
SensingControlUsecaseTests.swift- センシング制御の中核 -
RealtimeDataUsecaseTests.swift- リアルタイムデータ処理 -
FileManagementUsecaseTests.swift- ファイル管理
Phase 2: 重要なViewModel(優先度:高)
-
AutoAntennaCalibrationViewModelTests.swift -
ConnectionManagementViewModelTests.swift -
DataCollectionViewModelTests.swift -
SensingManagementViewModelTests.swift -
SensingViewModelTests.swift
Phase 3: Repository層(優先度:中)
-
DataRepositoryTests.swift -
PreferenceRepositoryTests.swift
Phase 4: その他のViewModel(優先度:中)
-
FieldSettingViewModelTests.swift -
FloorMapSettingViewModelTests.swift -
AntennaPositioningViewModelTests.swift -
FloorMapViewModelTests.swift -
TrajectoryViewModelTests.swift
Phase 5: Router層とユーティリティ(優先度:低)
-
NavigationRouterTests.swift -
SensingFlowNavigatorTests.swift -
DateUtilsTests.swift
テスト戦略
- Mock/Stubの活用: Repositoryやその他の依存をモック化
- 既存テストをテンプレート化:
ObservationDataUsecaseTests.swiftをベースに - Swift Testingフレームワークの使用: XCTestは使用しない
- 段階的な実装: Phase 1から順に実装
受け入れ条件
- Phase 1(重要なUsecase)のテストがすべて実装され、100%通ること
- Phase 2(重要なViewModel)のテストがすべて実装され、100%通ること
- ビルドが成功すること
- すべての新規テストがSwift Testingフレームワークを使用していること
補足事項
- 各Phaseごとに段階的にPRを作成することを推奨
- テストカバレッジツールでカバレッジを測定しながら進める
- Mock実装を共通化してテストコードの重複を避ける
🤖 このIssueはClaude Codeによって作成されました
Metadata
Metadata
Assignees
Labels
リファクタリングリファクタリングを行いますリファクタリングを行います