Flutter 雑学 「TEST」フォルダーって何のため

何気に存在している「TEST」フォルダー

画像を見ると:

lib フォルダにメインのアプリコード
test フォルダに widget_test.dart

普段は気にしたことがないのですが、調べてみました。

test フォルダ – アプリの自動テスト用!

この test フォルダは、アプリが正しく動くかを自動でチェックするテストコードを入れる場所です!

Flutter プロジェクトを作ると、最初からサンプルのテストが入っています:

// test/widget_test.dart
void main() {
  testWidgets('カウンターが増えるか', (WidgetTester tester) async {
    // アプリを起動
    await tester.pumpWidget(MyApp());
    
    // 最初は 0 か確認
    expect(find.text('0'), findsOneWidget);
    
    // + ボタンを押す
    await tester.tap(find.byIcon(Icons.add));
    await tester.pump();
    
    // 1 になったか確認
    expect(find.text('1'), findsOneWidget);
  });
}

人間がボタンを押す代わりに、コードが自動でテストしてくれます!

test フォルダの使い道:

バグを早く見つける

test('割引計算が正しいか', () {
  var price = calculateDiscount(10000, 0.1);  // 10%割引
  expect(price, 9000);  // 9000円になるはず
});

もし計算ミスがあれば、すぐに分かります!

コードを変更しても安心

  • 新機能を追加
  • テストを実行
  • 全部パスすれば、古い機能を壊してない! ✅

複雑な条件を確認

test('月末の計算', () {
  var lastDay = getLastDayOfMonth(2024, 2);  // 2月の最終日
  expect(lastDay, 29);  // うるう年なので29日
});

手動でチェックするより確実!

でも、使わなくてもいいの?

使わなくても大丈夫です!
特に:

個人開発の小さなアプリ
自分で手動テストできる規模
リリース済みで安定している

こういう場合は、test フォルダを触らなくてもOK

いつテストを書くべき?

状況

簡単なアプリ →個人開発なくてもOK
複雑な計算がある →あると便利
チーム開発 →書いたほうがいい
大規模アプリ →必須!

使い方

ターミナルで flutter test と実行すると、テストが走ります!

// test/simple_test.dart
import 'package:flutter_test/flutter_test.dart';

void main() {
  test('足し算のテスト', () {
    var result = 2 + 2;
    expect(result, 4);  // 4 になるはず
  });
}

テストフォルダーとは・・一言まとめ

test フォルダはアプリの自動テスト用。
使わなくても動くけど、複雑なアプリなら「ちゃんと動くか自動チェック」できて便利! 🧪✨

テストフォルダーに赤いエラーが出たら?

よくアプリを作成しているとテストフォルダーに赤いエラーが出る時があります。
このtestフォルダーのエラーは無視してもOK!

エラーが出る理由:
widget_test.dart の中身は、Flutterプロジェクトを作ったときのサンプルアプリ用のテストのまま、
新しいアプリを作ると「テストが探しているものが見つからない!」とエラーになります。

スッキリさせる方法

1. テストフォルダーを削除する(一番簡単!)

テストを使わないなら、フォルダごと削除してOKです!

test フォルダーを右クリック → Delete

これで赤いエラーも消えます! スッキリ! ✨

デメリット: なし(使ってないから)。また必要になったら、いつでも追加できる

2. widget_test.dart を削除する

フォルダは残したいけど、エラーだけ消したい場合:
test/widget_test.dart を右クリック → Delete

まとめ

testフォルダーのエラーは削除してOK! アプリ本体には影響しません。
気になるなら消して、スッキリしましょう!