Java Other
Latest commit 295e5dc Feb 26, 2017 @jongerrish jongerrish committed on GitHub Merge pull request #2927 from cesar1000/npe_package_manager
Fix NPE when calling DocumentsContract.isDocumentUri()
Permalink
Failed to load latest commit information.
.github Fix out of date build steps in README.md. Oct 7, 2016
buildSrc Create initial integration test project for Gradle. Feb 22, 2017
gradle/wrapper Create initial integration test project for Gradle. Feb 22, 2017
images Add Robolectric logo to README. Jan 7, 2015
integration-tests Add tests showing Mockito and PowerMock problems. Feb 22, 2017
robolectric-annotations Move Shadow to org.robolectric.shadow.api. Feb 7, 2017
robolectric-junit Fix SandboxClassLoader to obey parent-first contract. Feb 22, 2017
robolectric-processor Merge pull request #2885 from robolectric/check-api-changes-plugin Feb 8, 2017
robolectric-resources Add a bunch of new implementation methods to DefaultPackageManager. Feb 15, 2017
robolectric-sandbox Fix SandboxClassLoader to obey parent-first contract. Feb 22, 2017
robolectric-shadows Fix NPE in ShadowBitmapRegionDecoder Feb 26, 2017
robolectric-utils Restore and deprecate AccessibilityUtil and Transcript. Feb 7, 2017
robolectric Fix NPE when calling DocumentsContract.isDocumentUri() Feb 26, 2017
scripts Fix snapshot uploads. Jan 6, 2017
shadow-api Fix SandboxClassLoader to obey parent-first contract. Feb 22, 2017
testutil Class acquisition rules are simplified. The following packages are no… Feb 7, 2017
.gitignore Deploy all artifacts to Sonatype at once so that the SNAPSHOT version… Jan 6, 2015
.travis.yml Rebalance APIs to travis workers. Feb 7, 2017
CODE_OF_CONDUCT.md Update CODE_OF_CONDUCT.md Feb 26, 2017
LICENSE.txt Added Google to license. Aug 17, 2016
README.md Bump to 3.2.2. Jan 11, 2017
build.gradle Create initial integration test project for Gradle. Feb 22, 2017
circle.yml Drop memory limit for circleci. Jan 17, 2017
gradle.properties Improvements to API change checking. Jan 28, 2017
gradlew update gradle Jul 21, 2016
gradlew.bat update gradle Jul 21, 2016
settings.gradle Add tests showing Mockito and PowerMock problems. Feb 22, 2017

README.md

Build Status

Robolectric is a testing framework that de-fangs the Android SDK so you can test-drive the development of your Android app.

Usage

Here's an example of a simple test written using Robolectric:

@RunWith(RobolectricTestRunner.class)
@Config(constants = BuildConfig.class)
public class MyActivityTest {

  @Test
  public void clickingButton_shouldChangeResultsViewText() throws Exception {
    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 http://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 or gradle) as a guide to setting up both Android and Robolectric on your machine.

Gradle

testCompile "org.robolectric:robolectric:3.2.2"

Maven

<dependency>
   <groupId>org.robolectric</groupId>
   <artifactId>robolectric</artifactId>
   <version>3.2.2</version>
   <scope>test</scope>
</dependency>

Building And Contributing

Robolectric is built using Gradle. Both IntelliJ and Android Studio can import the top-level build.gradle file and will automatically generate their project files from it.

You will need to have portions of the Android SDK available in your local Maven artifact repository in order to build Robolectric. Copy all required Android dependencies to your local Maven repo by running:

./scripts/install-dependencies.rb

Robolectric supports running tests against multiple Android API levels. The work it must do to support each API level is slightly different, so its shadows are built separately for each. To build shadows for every API version, run:

./gradlew clean assemble install compileTest

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 master and may contain bugs.

Gradle

repositories {
    maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
}

dependencies {
    testCompile "org.robolectric:robolectric:3.3-SNAPSHOT"
}

Maven

<repository>
  <id>sonatype-snapshpots</id>
  <url>https://oss.sonatype.org/content/repositories/snapshots</url>
</repository>

<dependency>
   <groupId>org.robolectric</groupId>
   <artifactId>robolectric</artifactId>
   <version>3.3-SNAPSHOT</version>
   <scope>test</scope>
</dependency>