1<a name="README">[<img src="https://rawgithub.com/robolectric/robolectric/master/images/robolectric-horizontal.png"/>](https://robolectric.org)</a> 2 3[](https://github.com/robolectric/robolectric/actions?query=workflow%3Atests) 4[](https://github.com/robolectric/robolectric/releases) 5 6Robolectric 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. 7 8Robolectric supports running unit tests for *14* different versions of Android, ranging from Lollipop (API level 21) to U (API level 34). 9 10## Usage 11 12Here's an example of a simple test written using Robolectric: 13 14```java 15@RunWith(AndroidJUnit4.class) 16public class MyActivityTest { 17 18 @Test 19 public void clickingButton_shouldChangeResultsViewText() { 20 Activity activity = Robolectric.setupActivity(MyActivity.class); 21 22 Button button = (Button) activity.findViewById(R.id.press_me_button); 23 TextView results = (TextView) activity.findViewById(R.id.results_text_view); 24 25 button.performClick(); 26 assertThat(results.getText().toString(), equalTo("Testing Android Rocks!")); 27 } 28} 29``` 30 31For 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). 32 33## Install 34 35### Starting a New Project 36 37If 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. 38 39### `build.gradle` 40 41```groovy 42testImplementation "junit:junit:4.13.2" 43testImplementation "org.robolectric:robolectric:4.13" 44``` 45 46## Building and Contributing 47 48Robolectric 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. 49 50To get Robolectric up and running on your machine, check out 51[this guide](https://robolectric.org/building-robolectric/). 52 53To get a high-level overview of Robolectric's architecture, check out 54[ARCHITECTURE.md](ARCHITECTURE.md). 55 56## Using Snapshots 57 58If 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. 59 60### `build.gradle` 61 62```groovy 63repositories { 64 maven { url "https://oss.sonatype.org/content/repositories/snapshots" } 65} 66 67dependencies { 68 testImplementation "org.robolectric:robolectric:4.14-SNAPSHOT" 69} 70``` 71