Dart テスト
ソフトウェアテストはアプリ開発において重要な部分であり、アプリのリリース前に正しく動作していることを確認するのに役立ちます。この Dart テストガイドでは、いくつかのテストの種類の概要を示し、Flutter、Web、およびサーバーサイドアプリとスクリプト のテスト方法を学ぶことができる場所を示します。
dart test
コマンド(または Flutter アプリの場合はflutter test
)を使用して、コマンドラインでテストを実行できます。
テストの種類
#Dart テストのドキュメントでは、ご存じの多くの種類のテストのうち、ユニットテスト、コンポーネントテスト、エンドツーエンドテスト(統合テストの一種)の3種類に焦点を当てています。テスト用語は異なりますが、これらは Dart テクノロジーを使用する際に遭遇する可能性のある用語と概念です。
ユニットテストは、関数、メソッド、クラスなど、テスト可能なソフトウェアの最小単位の検証に焦点を当てています。テストスイートには、他の種類のテストよりも多くのユニットテストを含める必要があります。
コンポーネントテスト(Flutter ではウィジェットテストと呼ばれます)は、コンポーネント(通常は複数のクラスで構成されます)が期待どおりに動作することを検証します。コンポーネントテストでは、多くの場合、ユーザーアクション、イベントを模倣し、レイアウトを実行し、子コンポーネントをインスタンス化できるモックオブジェクトを使用する必要があります。
統合テストとエンドツーエンドテストは、アプリ全体またはアプリの大部分の動作を検証します。統合テストは通常、シミュレートされたデバイスまたは実機、またはブラウザ(Web の場合)で実行され、アプリ自体と、アプリをテストするテストアプリの2つの部分で構成されています。統合テストでは多くの場合パフォーマンスが測定されるため、テストアプリは通常、テスト対象のアプリとは異なるデバイスまたはOSで実行されます。
一般的に役立つライブラリ
#テストは、コードの対象プラットフォーム(Flutter、Web、サーバーサイドなど)によって部分的に依存しますが、次のパッケージは Dart プラットフォーム全体で役立ちます。
package:test
Dart でテストを記述するための標準的な方法を提供します。test パッケージを使用すると、- 単一のテストまたはテストのグループを記述できます。
@TestOn
アノテーションを使用して、特定の環境でのみテストを実行するように制限できます。- 同期テストを記述する場合と同様に、非同期テストを記述できます。
@Tag
アノテーションを使用してテストにタグを付けます。たとえば、タグを定義して一部のテストのカスタム構成を作成したり、完了に時間がかかるテストを識別したりできます。- 複数のファイルまたはパッケージ全体でタグ付きテストを構成するには、
dart_test.yaml
ファイルを作成します。
package:mockito
モックオブジェクトを作成し、固定シナリオで使用できるように簡単に構成し、テスト対象のシステムが期待どおりにモックオブジェクトと対話していることを検証する方法を提供します。package:test と package:mockito の両方を使用する例については、mockito パッケージの国際宇宙ステーション API ライブラリとそのユニットテストを参照してください。
Flutter テスト
#Flutter アプリのテストの詳細については、次のリソースを使用してください。
- Flutter アプリのテスト
Flutter アプリでユニットテスト、ウィジェットテスト、または統合テストを実行する方法。 - flutter_test
package:test を基に構築された Flutter 用のテストライブラリです。 - flutter_driver
実機とエミュレーターで Flutter アプリケーションをテストするためのテストライブラリ(別のプロセスで)。 - flutter_gallery
Flutter ギャラリーの例に関するソースコードとテスト。 - flutter/dev/manual_tests
Flutter SDK の多くのテスト例。
その他のツールとリソース
#Dart アプリケーションの開発とデバッグにも、次のリソースが役立つ場合があります。
IDE
#デバッグに関して、最初の防衛線は IDE です。多くの一般的に使用されている IDEに Dart プラグインが存在します。
Dart DevTools
#Dart DevTools は、Dart と Flutter 用のパフォーマンストゥールスイートです。詳細については、Dart DevTools のドキュメントを参照してください。
継続的インテグレーション
#継続的インテグレーション(CI)を使用して、コミットごとにプロジェクトをビルドし、テストを実行することを検討してください。GitHub の 2 つの CI サービスは、GitHub Actions と AppVeyor です。
GitHub Actions の詳細についてはこちら
- GitHub Actions を使用した Dart パッケージのテスト は、GitHub Actions を使用して Flutter アプリまたは Dart パッケージをテストするための簡単なワークフローを示しています。
- Dart チームが提供する多くのパッケージは GitHub Actions を使用しています。例として、markdown パッケージのリポジトリにある
test-package.yml
を参照してください。そのリポジトリが Travis CI から GitHub Actions に移行した方法を確認するには、PR #353を参照してください。
特に明記されていない限り、このサイトのドキュメントは Dart 3.5.3 を反映しています。ページは 2024年4月11日に最終更新されました。 ソースを表示 または 問題を報告する。