Flutter(Dart)の自動テスト(ユニットテスト)

こんにちは、株式会社Pentagonでエンジニアをしている阿久津です。

目次

この記事の内容

今回はFlutter(Dart)でのユニットテスト方法を紹介します。

Flutterでアプリ開発を行なっていく上でテストを自動化したいけど
どんな感じか知りたい方は参考にしてみてください。

他の言語の単体テスト(xUnit等)と同じ感じですが、Angular(Type Script)あたりが特に似ていると思います。

ユニットテストを行う際に必要なパッケージ

初期状態で入っているので恐らく追加済みと思いますが、以下が最低限必要です。
pubspec.yaml

dev_dependencies:
  flutter_test:
    sdk: flutter
  build_runner: <newest_version>

コード

プロダクトコード

class SampleModel {
  /// 商品情報からID付き商品名を取得する
  String getItemNameWithId(Item item) {
    return item.id + (item.name == null ? "" : "-${item.name}");
  }
}

テストコード

void main() {
  var sut = SampleModel(); // テスト対象(System Under Test)

  // ↓↓↓テストケース↓↓↓
  test('ID付き商品名称取得', () {
    // 実行
    final actual = sut.getItemNameWithId(Item(id: '001', name: 'apple'));
    // 検証
    expect(actual, '001-apple');
  });

  test('ID付き商品名称取得(商品名未設定時)', () {
    // 実行
    final actual = sut.getItemNameWithId(Item(id: '001', name: null));
    // 検証
    expect(actual, '001');
  });
}

以上です。簡単!!

まとめ

Flutter(Dart)でのユニットテスト方法でした。
WidgetテストやIntegrarionテスト、ユニットテストでもモックの利用方法等についても今後紹介します。

採用情報はこちら
目次