Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/robolectric/robolectric
Android Unit Testing Framework
https://github.com/robolectric/robolectric
android java robolectric unit-testing
Last synced: 11 days ago
JSON representation
Android Unit Testing Framework
- Host: GitHub
- URL: https://github.com/robolectric/robolectric
- Owner: robolectric
- License: other
- Created: 2010-08-28T00:28:25.000Z (about 14 years ago)
- Default Branch: master
- Last Pushed: 2024-07-30T11:19:28.000Z (3 months ago)
- Last Synced: 2024-07-30T13:31:40.285Z (3 months ago)
- Topics: android, java, robolectric, unit-testing
- Language: Java
- Homepage: http://robolectric.org
- Size: 56.6 MB
- Stars: 5,835
- Watchers: 199
- Forks: 1,360
- Open Issues: 539
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- mobile-guide - Robolectric
- awesome-android-testing - Robolectric
README
[![Build Status](https://github.com/robolectric/robolectric/actions/workflows/tests.yml/badge.svg)](https://github.com/robolectric/robolectric/actions?query=workflow%3Atests)
[![GitHub release](https://img.shields.io/github/release/robolectric/robolectric.svg?maxAge=60)](https://github.com/robolectric/robolectric/releases)Robolectric is the industry-standard unit testing framework for Android. With Robolectric, your tests run in a simulated Android environment inside a JVM, without the overhead and flakiness of an emulator. Robolectric tests routinely run 10x faster than those on cold-started emulators.
Robolectric supports running unit tests for *14* different versions of Android, ranging from Lollipop (API level 21) to U (API level 34).
## Usage
Here's an example of a simple test written using Robolectric:
```java
@RunWith(AndroidJUnit4.class)
public class MyActivityTest {@Test
public void clickingButton_shouldChangeResultsViewText() {
Activity activity = Robolectric.setupActivity(MyActivity.class);Button button = (Button) activity.findViewById(R.id.press_me_button);
TextView results = (TextView) activity.findViewById(R.id.results_text_view);button.performClick();
assertThat(results.getText().toString(), equalTo("Testing Android Rocks!"));
}
}
```For more information about how to install and use Robolectric on your project, extend its functionality, and join the community of contributors, please visit [robolectric.org](https://robolectric.org).
## Install
### Starting a New Project
If you'd like to start a new project with Robolectric tests, you can refer to `deckard` (for either [Maven](https://github.com/robolectric/deckard-maven) or [Gradle](https://github.com/robolectric/deckard-gradle)) as a guide to setting up both Android and Robolectric on your machine.
### `build.gradle`
```groovy
testImplementation "junit:junit:4.13.2"
testImplementation "org.robolectric:robolectric:4.13"
```## Building and Contributing
Robolectric is built using Gradle. Both Android Studio and IntelliJ can import the top-level `build.gradle.kts` file and will automatically generate their project files from it.
To get Robolectric up and running on your machine, check out
[this guide](https://robolectric.org/building-robolectric/).To get a high-level overview of Robolectric's architecture, check out
[ARCHITECTURE.md](ARCHITECTURE.md).## Using Snapshots
If you would like to live on the bleeding edge, you can try running against a snapshot build. Keep in mind that snapshots represent the most recent changes on the `master` and may contain bugs.
### `build.gradle`
```groovy
repositories {
maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
}dependencies {
testImplementation "org.robolectric:robolectric:4.14-SNAPSHOT"
}
```