OSS探訪GitHubでログイン

AndroidフレームワークをJVM上で再現し、エミュレーターなしでユニットテストを実行する

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
6,061
主要言語
Java
ライセンス
未判定
リポジトリ最終更新
2026/10/06
ページ内ナビ

概要

RobolectricはAndroid向けのユニットテストフレームワークです。Android環境をJVM上でシミュレーションし、ActivityやAndroid APIを使うコードを実機・エミュレーターなしでテストできます。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

Android APIをJVM上のテストから呼び出す

Androidフレームワークの挙動をShadowなどで再現し、通常のJVMテストとしてActivityやView、System Serviceを扱えます。端末起動の待ち時間を避けながらAndroid依存コードを検証できます。

出典:[2]

AndroidX Testのテスト記法と組み合わせる

READMEの例ではAndroidJUnit4とRobolectric.buildActivityを使い、Activityのライフサイクルを進めてUI操作と状態変化を検証します。

出典:[2]

向いている用途

Androidロジックの短いフィードバックループを作りたい場合に向く

ViewModel周辺だけでなくActivityやAndroid APIへ触れる処理もローカルJVMで確認したいチームに適します。CIでエミュレーターを常時起動するコストを抑えながらユニットテストを増やせます。

出典:[2]

導入前の確認

4.17のSDK対応とJDK設定、実端末との差を確認する

Robolectric 4.17はSDK 37対応を追加しています。リリースノートではJDK 17以上でjvmFlags設定が必要になる場合があると案内されています。シミュレーション環境なので、端末固有の描画・ハードウェア・OEM差分はinstrumented testでも確認してください。

出典:[3]

参考にした公式資料

  1. [1]robolectric/robolectric — GitHub repository(2026-10-06)
  2. [2]Robolectric 4.17 — README(2026-10-06)
  3. [3]Robolectric 4.17 release(2026-10-06)
  4. [4]Robolectric 4.17 — LICENSE(2026-10-06)
編集部からの補足

実機やエミュレーターを起動せず、Android APIを使うロジックへ高速にフィードバックを得たい場合に有効です。最終的な端末依存挙動はinstrumented testでも確認し、Robolectricだけで全互換性を保証しない運用が適します。

3ステップで試す

  1. 1

    Robolectric 4.17とテスト依存関係を追加する

    AndroidモジュールのGradle設定へRobolectric 4.17、JUnit 4、AndroidX TestのJUnit拡張を追加します。

    testImplementation("junit:junit:4.13.2") testImplementation("org.robolectric:robolectric:4.17") testImplementation("androidx.test.ext:junit:1.3.0")
  2. 2

    Activityのローカルテストを書く

    READMEのActivityController例に沿ってActivityをRESUMED状態まで進め、JVM上でAndroid依存コードを確認します。

    @RunWith(AndroidJUnit4::class) class MyActivityTest { @Test fun launch() { Robolectric.buildActivity(MyActivity::class.java).use { controller -> val activity = controller.setup().get() check(activity != null) } } }
  3. 3

    Debugのユニットテストを実行する

    Android Gradle PluginのDebug向けローカルユニットテストを実行し、Robolectricテストがエミュレーターなしで通ることを確認します。

    ./gradlew testDebugUnitTest
公式READMEで確認

成長

成長の推移 · 直近30日

6,061 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
43
Open PR
100

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • android
  • robolectric
  • java
  • unit-testing
Stars
6,061
Forks
1,391
Watchers
187
Open Issues
394
Contributors
201
所有者種別
Organization
主要言語
Java
ライセンス
未判定
リポジトリ最終更新
2026/10/06

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?