Robolectric

robolectric.org ↗

Run Android component and resource tests in a JVM without launching an emulator for every test.

SI Score
80/100
Pricing
Open Source AI reading, not confirmed
Free plan
Not confirmed
Sign-up required
Not confirmed

Ask SI about Robolectric

Answers use saved listing facts and recorded sources.
Homepage screenshot
Screenshot of the Robolectric homepage

What it does

Robolectric is an Android unit-testing framework that simulates Android APIs inside the host JVM. Add it to an Android module's test dependencies, write tests for components such as activities and views, and run them through the project's build system. This can shorten the feedback loop for behavior that can be exercised against the simulated framework, while leaving device-specific behavior to instrumentation or emulator testing. Its compatibility documentation maps Robolectric releases to Android API levels and build-tool versions.

Add it to an Android test source set

The official setup guide uses Gradle: enable Android resources for unit tests, add JUnit and org.robolectric:robolectric as test dependencies, and annotate the test class with @RunWith(RobolectricTestRunner.class). The repository example builds an activity, advances it through setup, performs a view interaction, and checks the result. In a real project, the reader supplies the Android app, test case, and build configuration, then runs the module's normal test task. These are documented steps, not a test run for this listing.

Robolectric is useful when a test needs Android resources or lifecycle behavior but does not need a physical handset for every iteration. Check its compatibility table before selecting versions: the project lists supported Android API levels alongside the compatible Gradle and Android Gradle Plugin versions.

Keep a device-test boundary

Robolectric emulates Android APIs within a JVM; it does not make every device behavior identical. Its own limitations guide documents differences between Android's libcore and OpenJDK, including timezone and month-name handling. For tests sensitive to those differences, verify the behavior with regular Android tests on an emulator or device. The project source is MIT-licensed; exact version compatibility still depends on the Android and Gradle versions in the app.

Strengths

  • Android activities, resources, and view interactions can be exercised in JVM tests using a familiar Gradle/JUnit setup.
  • The compatibility table makes Android API, Gradle, and Android Gradle Plugin versions explicit for each Robolectric release.
  • The framework can reduce reliance on emulator startup for suitable unit-level checks.

Watch out for

  • Its JVM simulation can differ from Android's own libraries; the maintainers recommend regular Android tests for certain platform-specific behaviors.

Best for

  • Android app teams testing activity, view, and resource behavior from Gradle unit tests
  • Developers who need faster iteration on Android component tests before broader device coverage
  • Projects that can pin compatible Robolectric, Android SDK, and Gradle plugin versions

Sources