Compose レイアウトをテストする

アプリの UI をテストして、Compose コードの動作が正しいことを確認します。これにより、エラーを早期に発見し、アプリの品質を向上させることができます。

Compose には、要素の検索、属性の検証、ユーザー アクションの実行を行うための一連のテスト API が用意されています。また、時間操作などの高度な機能も含まれます。これらの API を使用して、アプリの動作を確認する堅牢なテストを作成します。

View

Compose ではなくビューを使用している場合は、一般的なAndroid でアプリをテストするをご覧ください。

特に、UI テストを自動化するガイドを参照することをおすすめします。ビューの使用時など、デバイス上で実行されるテストを自動化する方法について説明します。

主な概念

Compose コードをテストする主なコンセプトは次のとおりです。

  • セマンティクス: Compose テストは、UI の一部に意味を与え、UI 階層とともに生成されるセマンティクスを使用して UI を操作します。
  • テスト API: Compose には、要素の検索、状態とプロパティの断言、アクションの実行によるユーザー操作のシミュレーションを行うテスト API が用意されています。
  • 同期: デフォルトでは、Compose テストは UI と自動的に同期し、UI がアイドル状態になるのを待ってから、アサーションの実行やアクションの実行を行います。
  • 相互運用性: ハイブリッド アプリでは、テストで Compose ベースとビューベースの要素の両方をシームレスに操作し、他のテスト フレームワークと統合できます。

テスト早見表

Compose でのテストについて学ぶべきすべての主要なトピックの概要については、テストのクイック リファレンスをご覧ください。

設定

Compose コードをテストできるようにアプリを設定します。

まず、UI テストを含むモジュールの build.gradle ファイルに次の依存関係を追加します。

// Test rules and transitive dependencies:
androidTestImplementation("androidx.compose.ui:ui-test-junit4:$compose_version")
// Needed for createComposeRule(), but not for createAndroidComposeRule<YourActivity>():
debugImplementation("androidx.compose.ui:ui-test-manifest:$compose_version")

このモジュールには、ComposeTestRule と、AndroidComposeTestRule と呼ばれる Android 用の実装が含まれています。このルールを通じて、Compose コンテンツを設定したり、アクティビティにアクセスしたりできます。ルールは、ファクトリ関数(createComposeRule)または(アクティビティにアクセスする必要がある場合は createAndroidComposeRule)を使用して作成します。Compose の一般的な UI テストは次のようになります。

// file: app/src/androidTest/java/com/package/MyComposeTest.kt

class MyComposeTest {

    @get:Rule val composeTestRule = createComposeRule()
    // use createAndroidComposeRule<YourActivity>() if you need access to
    // an activity

    @Test
    fun myTest() {
        // Start the app
        composeTestRule.setContent {
            MyAppTheme {
                MainScreen(uiState = fakeUiState, /*...*/)
            }
        }

        composeTestRule.onNodeWithText("Continue").performClick()

        composeTestRule.onNodeWithText("Welcome").assertIsDisplayed()
    }
}

参考情報

  • Android でアプリをテストする: Android テストのメイン ランディング ページでは、テストの基礎と手法について幅広く説明しています。
  • テストの基礎: Android アプリのテストに関する基本コンセプトを学びます。
  • ローカルテスト: 一部のテストは、独自のワークステーションのローカルに実行できます。
  • インストルメンテーション テスト: インストルメンテーション テストも実行することをおすすめします。つまり、デバイス上で直接実行されるテストです。
  • 継続的インテグレーション: 継続的インテグレーションにより、テストをデプロイ パイプラインに統合できます。
  • さまざまな画面サイズをテストする: ユーザーが利用できるデバイスは非常に多様であるため、さまざまな画面サイズでテストする必要があります。
  • Espresso: Espresso はビューベースの UI を対象としていますが、Compose テストの一部のアスペクトでも役立ちます。

Codelab

詳細については、Jetpack Compose テストの Codelab をご覧ください。

サンプル

Mir 2: Return of the King は、Actoz Soft がライセンスを付与し、 HK ZHILI YAOAN LIMITED が Unity ゲームエンジンを使用して開発した、高品質の Legend IP モバイルゲームです。 このゲームは、韓国のファンタジー MMORPG を代表する Mir 2 の雰囲気を完璧に再現するだけでなく、装備の収集、大規模な砂攻撃、その他のコア ゲームプレイなど、最も人気のあるゲーム コンテンツも数多く提供しています。

Wuthering Waves は、Kuro Games が開発した高品質のアクション RPG ゲームです。長時間のゲーム セッションでプレミアムなユーザー エクスペリエンスを持続的に提供するには、消費電力を最適化することが非常に重要です。 Android Studio では、Hedgehog(2023.1.1)から Power Profiler が導入されました。これは、デベロッパーが On Device Power Rails

Godot Engine は、Android を堅牢にサポートする人気の高いマルチプラットフォームのオープンソース ゲームエンジンです。Godot は、ほぼすべてのジャンルのゲームの作成に使用でき、2D グラフィックと 3D グラフィックの両方に対応しています。Godot バージョン 4 では、高忠実度グラフィック向けの高度な機能を備えた新しいレンダリング システムが導入されました。Godot 4 レンダラは、Vulkan などの最新のグラフィック API 向けに設計されています。 Godot

現在、おすすめはありません。

Google アカウントにしてください。