Testing Flutter apps翻訳-ユニットテストの概要

4691 ワード

翻訳ホームページ
アプリケーションがより多くの機能を追加したり、既存の機能を変更したりしたときに正常に動作することを確認するにはどうすればいいですか?答えはテストを書くことです.
ユニットテストは、単一の関数、メソッド、またはクラスを簡単にテストできます.このtestパッケージは、書き込みユニットテストのコアフレームワークを提供し、flutter_testパッケージには、Widgetをテストするためのユーティリティが追加されています.
このディレクトリではtestパッケージが提供するコア機能を示しています.testパッケージの詳細はこちらを参照してください.

目次:

  • testまたはflutter_test依存
  • を追加
  • testファイル
  • を作成する
  • をテストするクラスを作成
  • 私たちのクラスにユニットテスト
  • を書きます.
  • は、groupを使用して、複数の試験
  • と組み合わせる.
  • 実行テスト
  • 1.testまたはflutter_の追加test依存


    Flutterに依存せずにDartパッケージのコードのみを使用する場合は、testパッケージのみをインポートできます.このtestパッケージはDartにユニットテストを書くコア機能を提供しています.これは、Web、サーバ、およびFlutterアプリケーションのユニットテストを記述するための最良の方法です.
    dev_dependencies:
      test: 
    

    2.testファイルの作成


    この例では、counter.dartcounter_test.dartの2つのファイルを作成する.
    このcounter.dartファイルには、libフォルダの下にテストしたいクラスが含まれます.このcounter_test.dartファイルには、テスト自体が含まれ、testフォルダの下に配置されます.
    一般的に、testファイルはtestフォルダの下に保存され、testフォルダはFlutterアプリケーションまたはパッケージのルートディレクトリに保存されます.
    これらを完了したら、このフォルダアーキテクチャは次のようになります.
    counter_app/
      lib/
        counter.dart
      test/
        counter_test.dart
    

    3.テストされたクラスを作成する


    次に、「ユニット」は関数、方法、またはクラスの代名詞を意味する「ユニット」をテストする必要があります.この例では、lib/counter.dartにCounterクラスを作成します.これは、初期0の値に値を増加または減少させる役割を果たします.
    class Counter {
      int value = 0;
    
      void increment() => value++;
    
      void decrement() => value--;
    }
    

    **注:**このチュートリアルでは、単純化のために「テストドライバ開発」に従っていません.「テストドライバ開発」のほうが好きなら、あなたも使えます.

    4.私たちのクラスにユニットテストを書く


    このcounter_test.dartファイルに、私たちの最初のユニットテストを書いてください.テスト定義はトップレベル関数で、トップレベルexpect関数を使用して結果が正しいかどうかを確認できます.この2つの関数はtestパッケージから来ています.
    // Import the test package and Counter class
    import 'package:test/test.dart';
    import 'package:counter_app/counter.dart';
    
    void main() {
      test('Counter value should be incremented', () {
        final counter = Counter();
    
        counter.increment();
    
        // counter.value 1 
        expect(counter.value, 1);
      });
    }
    

    5.groupを使用して複数のテストを組み合わせる


    いくつかの関数が互いに関連している場合は、testパケットのgroup関数を使用することができます.
    import 'package:test/test.dart';
    import 'package:counter_app/counter.dart';
    
    void main() {
      group('Counter', () {
        test('value should start at 0', () {
          expect(Counter().value, 0);
        });
    
        test('value should be incremented', () {
          final counter = Counter();
    
          counter.increment();
    
          expect(counter.value, 1);
        });
    
        test('value should be decremented', () {
          final counter = Counter();
    
          counter.decrement();
    
          expect(counter.value, -1);
        });
      });
    }
    

    6.運転テスト

    Counter種類のユニットテストがあり、このテストを実行することができます.

    IntelliJまたはVSCodeを使用してテストを実行


    IntelliJおよびVSCodeのFlutterプラグインは、実行ユニットテストをサポートします.これは、最も速いフィードバックサイクルとブレークポイントを設定する能力を提供するため、通常、テストを作成する際に最適な選択です.
    IntelliJ 1. counter_test.dartファイル2を開く.Runメニュー3を選択する.Run 'tests in counter_test.dart'オプション4をクリックします.または、プラットフォームに適切なキーボードショートカットを使用します.
    VSCode 1. counter_test.dartファイル2を開く.Debugメニュー3を選択する.Start Debuggingオプション4をクリックします.または、プラットフォームに適切なキーボードショートカットを使用します.

    端末でテストを実行


    プロジェクトのルートディレクトリで、次のコマンドを使用して端末でテストを実行することもできます.
    flutter test test/counter_test.dart