KaitoMuraoka / PracticeAndroid

0 stars 0 forks source link

Testing Basics #1

Open KaitoMuraoka opened 1 year ago

KaitoMuraoka commented 1 year ago

Advanced Android in Kotlin 05.1: Testing Basics

https://developer.android.com/codelabs/advanced-android-kotlin-training-testing-basics#0

KaitoMuraoka commented 1 year ago

タスクコードに慣れる

1.サンプルアプリを実行する

TO-DOアプリをダウンロードしたら、Android Studioで開き、実行してください。コンパイルされるはずです。以下のようにして、アプリを探検してください:

2.サンプルアプリのコードを調べる

TO-DOアプリは、Architecture Blueprintsのテストとアーキテクチャのサンプルに基づくものです。このアプリは、アプリのアーキテクチャに関するガイドのアーキテクチャに従います。このアプリでは、ViewModels with Fragments、リポジトリ、およびRoomを使用しています。以下の例のいずれかに精通している場合、このアプリは同様のアーキテクチャを持っています:

あるレイヤーのロジックを深く理解することよりも、アプリの一般的なアーキテクチャを理解することの方が重要なのです。

ここでは、パッケージの概要をご紹介します:

ここに票を貼る

Data layer(.data)

このアプリは、リモートパッケージのネットワーク層とローカルパッケージのデータベース層をシミュレートしています。簡単のために、このプロジェクトでは、ネットワーク層は、実際のネットワーク要求を行うのではなく、遅延を持つHashMapだけでシミュレートされています。

DefaultTasksRepositoryは、ネットワーク層とデータベース層の間を調整または仲介し、UI層にデータを返すものである。

UI layer ( .addedittask, .statistics, .taskdetail, .tasks)

UIレイヤーの各パッケージには、フラグメントとビューモデル、そしてUIに必要なその他のクラス(タスクリスト用のアダプターなど)が含まれています。TaskActivityは、すべてのフラグメントを含むアクティビティです。

Navigation

アプリのナビゲーションは、Navigatonコンポーネントによって制御されます。これは、nav_graph.xmlファイルで定義されています。ナビゲーションは、Eventクラスを使用してViewModelで定義されています。Navigationは、Eventクラスを使用してViewModelでトリガーされます。ViewModelは、渡す引数も決定します。ViewModelはどのような引数を渡すかも決定します。フラグメントは、Eventを観察し、画面間の実際のナビゲーションを実行します。

KaitoMuraoka commented 1 year ago

テストの実行

このタスクでは、最初のテストを実行します。 1.Android Stuidoでプロジェクトペインを開き、以下の3つのフォルダを見つけます。:

これらのフォルダは、ソースセットと呼ばれています。ソースセットは、あなたのアプリのソースコードを含むフォルダです。緑色に着色されているソースセット(androidTestとtest)には、テストが含まれています。新しいandroidプロジェクトを作成すると、デフォルトで次のソースセットを取得します。

ローカルテストとinstrumentテストの違いには、その実行方法にあります。

ローカルテスト(テストソースセット)

これらのテストは、開発マシンのJVM上でローカルに実行され、エミュレータや物理的なデバイスは必要ありません。そのため、実行速度は速いですが、忠実度は低く、現実世界と同じような動作はしません。 Android Studioでは、ローカルテストは緑と赤の三角形のアイコンで表されます。

インストゥルメントテスト(androidTestソースセット)

これらのテストは、実際のAndroid端末やエミュレートされたAndroid端末で実行されるため、実世界で起こることを反映していますが、速度もかなり遅いです。

Android Studioでは、インストルメンテーションされたテストは、緑と赤の三角形のアイコンが付いたAndroidで表されます。

Step1:ローカルテスト

  1. exampleUnitTest.ktファイルが見つかるまで、testフォルダを開いてください。
  2. その上で右クリックし、Run ExampleUnitTestを選択します。

画面下部の「Run」ウィンドウに、以下のような出力が表示されるはずです:

  1. 緑色のチェックマークに注目し、テスト結果を展開すると、addition_isCorrectという1つのテストが合格していることが確認できます。足し算が期待通りに機能することが分かってよかったです!