6
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[Flutter]ユニットテストの実装について学んだ。

Posted at

はじめに

こんにちは。
今回は、ユニットテストについて学んだことを共有できればと思います。
間違いやご指摘があればコメントいただければ幸いです。

ユニットテストとは?

ユニットテストとは、プログラムを構成する小さな単位(関数やメゾッド)で、
個々の機能が正しく動作するのか確認するため
に実施するテストを指します。

ユニットテストの担当範囲

ユニットテストは、主にビジネスロジックが意図した挙動通り動作するかを確かめるものなので、
ビジネスロジックに関した関数、クラス、メゾット、モジュール単位(言い方違うだけ)で実装します。

APIのPOST,GETなどは、結合テストで、
WIdgetのUIなどはWidgetテストでそれぞれ行うのが通常です。

これはまた後日記事にさせていただければと思います。

実装方法

パッケージ

以下のテストパッケージを使用します。

以下のどちらかのコマンドをプロジェクトルートで叩いてください。

パッケージインストール
dart pub add test --dev
///dart
flutter pub add test --dev
///flutter

テストファイルの作成

まずは、プロジェクトのルートでtestディレクトリを作成します。
その上で、テストディレクトリ内にテストしたいファイル名の後ろに、
_testをつけて、新規にプロジェクトファイルを作成します。

例えば、sample.dartファイルに対するテストファイルを作成したい場合は、
以下のように、sample_test.dartを作成します。

project_app/
  lib/
    sample.dart
  test/
    sample_test.dart

階級を合わせる。※注意点

テストコードを書きたいファイルと同じディレクトリ構成で作成しなければいけない。

project_app/
  lib/
    controller/
       sample.dart
  test/
    controller/
       sample_test.dart

テスト実装

以下がテストコードのテンプレです。

test("テスト名", () {
  // 前処理
  // クラスのインスタンスを生成したりなどする
  expect("処理や変数", "処理による結果や変数の期待値");
});

実際にコードを見てみましょう。

 test('first test', (){
    var calu = 2 + 3;
    expect(calu, 5);
  });

テスト実行

プロジェクトのルートディレクトリで以下のコマンドを叩きます。

flutter test
//全てのテストコードを実行するコマンド

flutter test test/sample_test.dart
//特定のテストファイルを実行するコマンド

結果

成功していた場合↓↓

~~~@~ プロジェクト名 % flutter test
00:10 +2: All tests passed!   

失敗していた場合↓↓

flutter test
00:02 +0 -1: /Users/~/StudioProjects/プロジェクト名/test/sample_test.dart: first test [E]          
  Expected: <6>
    Actual: <5>
  
  package:matcher            expect
  test/sample_test.dart 7:5  main.<fn>

Mockを用いる。

Mockを用いてtestを実行する方法は今後追記するか、別記事にして書こうと思います。

参考記事

最後に

最後まで読んでいただきありがとうございました。
何かご指摘等あればコメントいただけると大変励みになります。

ありがとうございました。

6
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?