Skip to content
Back to skills

Test Flutter

ASecurity

Flutter App のテスト実行・静的解析・フォーマット・テスト記述ガイド

  • 1,080 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added May 26, 2026
developmentbash

Works with

  • cli
  • mcp

Security analysis

A100/100

Scanned September 20, 2026

npx -y skills add K9i-0/ccpocket --skill test-flutter --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Test Flutter?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Test Flutter
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/k9i-0-test-flutter/badge)](https://www.skillsdirectory.com/skills/k9i-0-test-flutter)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: test-flutter
description: Flutter App のテスト実行・静的解析・フォーマット・テスト記述ガイド
allowed-tools: Bash(flutter:*), Bash(dart:*), Read, Glob, Grep
---

# Flutter App テスト

## 実行手順

変更した挙動に対応するテストと静的検証を選ぶ。全体テストは、共通基盤・依存関係への変更や回帰懸念がある場合、または全体検証を依頼された場合に実行する。成功済みの検証を理由なく繰り返さない。以下はコマンドの選択肢。

### 1. 静的解析

```bash
dart analyze apps/mobile
```

今回の変更で生じた warning 以上は修正する。既存の無関係な問題は報告し、info は必要に応じて対応する。

**MCP代替:** `mcp__dart-mcp__analyze_files` でも実行可能だが、CLI推奨。

### 2. フォーマット

```bash
dart format <変更したDartファイル>
```

### 3. ユニットテスト

```bash
cd apps/mobile && flutter test
```

特定ファイルのみ:
```bash
cd apps/mobile && flutter test test/<filename>_test.dart
```

**MCP代替:** `mcp__dart-mcp__run_tests` でも実行可能だが、CLI推奨。
MCP版はDTD接続不要な操作のため、CLIの方が効率的。

## テスト記述規約

### ファイル配置・命名

- テストファイルは `apps/mobile/test/` に配置
- 命名: `<対象の概念>_test.dart`
  - ウィジェットテスト例: `approval_bar_test.dart`, `chat_input_bar_test.dart`
  - ロジックテスト例: `chat_message_handler_test.dart`

### import

```dart
import 'package:flutter_test/flutter_test.dart';
import 'package:ccpocket/...';
```

### テスト構造

```dart
void main() {
  group('対象クラスまたは機能', () {
    test('動作の説明', () {
      // ロジックテスト
      expect(actual, expected);
    });

    testWidgets('UI動作の説明', (tester) async {
      // ウィジェットテスト
      await tester.pumpWidget(MaterialApp(home: TargetWidget()));
      expect(find.text('expected'), findsOneWidget);
    });
  });
}
```

- `group` で対象機能ごとにグルーピング
- ロジックテストは `test()`、UI テストは `testWidgets()` を使い分ける
- `setUp()` でテスト前の共通初期化を行う

### テスト対象の方針

- **ウィジェットテスト**: 画面の表示・インタラクション検証
  - `pumpWidget` でウィジェット構築 → `find` で要素確認 → `tap`/`enterText` で操作
- **ロジックテスト**: サービス・ハンドラーの振る舞い検証
  - 純粋なDartクラスのメソッド呼び出しと結果確認
- WebSocket通信やBridge接続のモックが必要なテストは避ける (E2E領域)

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.