1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Flutter/インテグレーションテスト】expectの基本解説

Posted at

はじめに

FlutterやDartでアプリを作るときに欠かせないことは、当たり前のことですがちゃんと動くか動作確認することです!
でも毎回やるのはちょっと大変、、、そんな時に便利なのが、自動的にテストしてくれるインテグレーションテスト(統合テスト)です!
そのテストでよく使うのが expect です。expect を使うと、「ある値」が「期待した値」と同じかどうかをチェックできます。今回は、expect の使い方や便利な機能を説明します!

expect の基本ルール

expect の基本は、「テストする値」と「期待する条件」をセットで書くことです。

expect(actual, matcher, reason: 'エラー時のメッセージ');
  • actual: 実際にテストする値や結果
  • matcher: 期待する条件や値
  • reason: テストが失敗したときに出すメッセージ(オプション)

基本的な使い方

expect(2 + 2, equals(4));            // 2 + 2が4か?
expect('Hello Flutter', contains('H'));   // 'H'が含まれているか?
expect([1, 2, 3], isNotEmpty);       // リストが空じゃないか?
expect(5, greaterThan(3));           // 数値が3より大きいか?

マッチャーって何? なぜ必要?

「マッチャー」は、expect の条件をもっとわかりやすくするためのものです。

1. 何をチェックしているのかがわかりやすい

マッチャーを使うと「何を確認したいのか」が明確になります。
ただの比較よりも、equalsを使った方が読みやすくなります。

expect(2 + 2, equals(4));  // 「2+2が4であること」を確認 

2. いろんな条件を簡単にチェックできる

マッチャーにはequals以外にも、範囲や特定の条件をチェックするものがあります。
複雑なテストも短く簡単に書くことができます。

expect(score, greaterThan(50));     // scoreが50より大きいか?

3. エラーの原因がわかりやすくなる

マッチャーを使うと失敗したときのメッセージも具体的です。
どのテストが失敗したかがすぐわかり、修正しやすくなります。

4. コードの再利用や修正がしやすい

マッチャーは共通ルールなので、複数の場所で使いやすいことも利点の一つです。
また、独自のマッチャーを作ってテストコードを整理することもできます。

主なマッチャー

1. equals(expectedValue)

値が期待通りかを確認します。

expect(result, equals(10));    // result が 10 か

2. isNull / isNotNull

値がnull(何もない状態)か、またはnullでないかをチェックします。

expect(value, isNull);          // 値が null か
expect(value, isNotNull);       // 値が null でないか

3. contains(element)

文字列やリストに特定の要素が含まれているかを確認します。

expect('Flutter', contains('Flut'));    // 'Flutter' に 'Flut' が含まれるか

4. isTrue / isFalse

値がtrueまたはfalseかを確認します。

expect(isLoggedIn, isTrue);    // ログイン状態が true か?
expect(hasError, isFalse);     // エラー状態が false か?

5. greaterThan(value) / lessThan(value)

値が特定の数より大きいか小さいかをチェックします。

expect(score, greaterThan(70));       // スコアが70より大きいか?
expect(temperature, lessThan(100));   // 温度が100未満か?

まとめ

expect を使えば、アプリがちゃんと動くか簡単にテストすることが可能になります!
また、マッチャーを活用することでテストが読みやすく書きやすくなり、失敗しても原因がわかりやすくなるので、テストを作成する際は参考にしてみてください!

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?