Files
everything-claude-code/docs/ja-JP/commands/flutter-test.md
Claude ec9ace9c54 docs: add native Japanese translation of ECC documentation (ja-JP)
Translate everything-claude-code repository to Japanese including:
- 17 root documentation files
- 60 agent documentation files
- 80 command documentation files
- 99 rule files across 18 language directories (common, angular, arkts, cpp, csharp, dart, fsharp, golang, java, kotlin, perl, php, python, ruby, rust, swift, typescript, web)
- 199 skill documentation files

Total: 455 files translated to Japanese with:
- Consistent terminology glossary applied throughout
- YAML field names preserved in English (name, description, etc.)
- Code blocks and examples untouched (comments translated)
- Markdown structure and relative links preserved
- Professional translation maintaining technical accuracy

This translation expands ECC accessibility to Japanese-speaking developers and teams.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-17 02:31:40 -04:00

145 lines
4.7 KiB
Markdown

---
description: Flutter/Dartテストを実行し、失敗を報告し、テスト問題をインクリメンタルに修正します。ユニット、ウィジェット、ゴールデン、統合テストをカバーします。
---
# Flutterテスト
このコマンドはFlutterテストスイートを実行し、結果を報告します。失敗が発生した場合、問題を診断しインクリメンタルに修正します。
## このコマンドの動作
1. **テスト実行**: `flutter test`を実行(または変更されたファイルにスコープを限定)
2. **失敗を解析**: タイプと原因別に失敗するテストを特定
3. **インクリメンタルに修正**: 可能な場合は一度に1つの失敗
4. **検証**: 各修正後に再実行
5. **報告**: カバレッジサマリーと残りの失敗を表示
## 使用するタイミング
`/flutter-test`を使用するのは:
- 機能を実装した後に何も壊れていないことを確認するため
- `/flutter-build`実行後にテストが通ることを確認するため
- 新しいコードのテストカバレッジを確認するため
- 特定のテストファイルが失敗している時
- PRを提出する前
## 実行されるコマンド
```bash
# すべてのテストを実行
flutter test 2>&1
# カバレッジ付きで実行
flutter test --coverage 2>&1
# 特定のテストファイルを実行
flutter test test/unit/domain/usecases/get_user_test.dart 2>&1
# 名前パターンに一致するテストを実行
flutter test --name "CartBloc" 2>&1
# 統合テストを実行(デバイス/エミュレーターが必要)
flutter test integration_test/ 2>&1
# 意図的なビジュアル変更時にゴールデンファイルを更新
flutter test --update-goldens 2>&1
```
## セッション例
````text
User: /flutter-test
Agent:
# Flutterテスト実行
## テスト実行
```
$ flutter test
00:05 +42 -2: Some tests failed.
FAILED: test/unit/data/user_repository_test.dart
UserRepository getById
returns null when user not found
Expected: null
Actual: User(id: 'test-id', name: 'Test User')
FAILED: test/widget/cart_page_test.dart
CartPage
shows empty state when cart is empty
Expected: exactly one widget with text 'Your cart is empty'
Found: no widget with text 'Your cart is empty'
```
## 修正 1: リポジトリテスト
File: test/unit/data/user_repository_test.dart
失敗: `getById`が欠落IDに対してnullを返すべきところでユーザーを返す
根本原因: テストセットアップがID 'test-id' のユーザーを追加するが、'missing-id' でクエリしている。
修正: 'missing-id' でクエリするようテストを更新 — セットアップは正しく、クエリが間違っていた。
```
$ flutter test test/unit/data/user_repository_test.dart
1 test passed.
```
## 修正 2: ウィジェットテスト
File: test/widget/cart_page_test.dart
失敗: 空状態のテキストウィジェットが見つからない
根本原因: 空状態メッセージがウィジェット内で 'Your cart is empty' から 'Cart is empty' に変更されていた。
修正: 現在のウィジェットのコピーに合わせてテスト文字列を更新。
```
$ flutter test test/widget/cart_page_test.dart
1 test passed.
```
## 最終実行
```
$ flutter test --coverage
All 44 tests passed.
Coverage: 84.2% (target: 80%)
```
## サマリー
| メトリクス | 値 |
|-----------|-----|
| 総テスト数 | 44 |
| 成功 | 44 |
| 失敗 | 0 |
| カバレッジ | 84.2% |
テストステータス: PASS ✓
````
## 一般的なテスト失敗
| 失敗 | 典型的な修正 |
|------|-------------|
| `Expected: <X> Actual: <Y>` | アサーションを更新するか実装を修正 |
| `Widget not found` | ファインダーセレクタを修正するかウィジェット名変更後にテストを更新 |
| `Golden file not found` | `flutter test --update-goldens`を実行して生成 |
| `Golden mismatch` | 差分を検査し、変更が意図的なら`--update-goldens`を実行 |
| `MissingPluginException` | テストセットアップでプラットフォームチャネルをモック |
| `LateInitializationError` | `setUp()`で`late`フィールドを初期化 |
| `pumpAndSettle timed out` | 明示的な`pump(Duration)`コールに置き換え |
## 関連コマンド
- `/flutter-build` — テスト実行前にビルドエラーを修正
- `/flutter-review` — テスト通過後にコードをレビュー
- `tdd-workflow`スキル — テスト駆動開発ワークフロー
## 関連
- エージェント: `agents/flutter-reviewer.md`
- エージェント: `agents/dart-build-resolver.md`
- スキル: `skills/flutter-dart-code-review/`
- ルール: `rules/dart/testing.md`