Java Other
Latest commit e38f63a Feb 18, 2017 @jongerrish jongerrish committed on GitHub Merge pull request #2907 from kageiit/buck_support
Add support for the buck build system
Permalink
Failed to load latest commit information.
.github Fix out of date build steps in README.md. Oct 7, 2016
buildSrc CheckApiChangesPlugin cleanup. Feb 8, 2017
gradle/wrapper Bump dependency versions. Jan 7, 2017
images Add Robolectric logo to README. Jan 7, 2015
integration-tests Break dependency from resources module to android. Feb 8, 2017
robolectric-annotations Move Shadow to org.robolectric.shadow.api. Feb 7, 2017
robolectric-junit Cleanup. Feb 7, 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 Cleanup. Feb 7, 2017
robolectric-shadows Add a bunch of new implementation methods to DefaultPackageManager. Feb 15, 2017
robolectric-utils Restore and deprecate AccessibilityUtil and Transcript. Feb 7, 2017
robolectric Handle empty property Feb 18, 2017
scripts Fix snapshot uploads. Jan 6, 2017
shadow-api Restore and deprecate AccessibilityUtil and Transcript. Feb 7, 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
LICENSE.txt Added Google to license. Aug 17, 2016
README.md Bump to 3.2.2. Jan 11, 2017
build.gradle Add gradle task for comparing jars for API changes. Jan 27, 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 Move Shadow to org.robolectric.shadow.api. Feb 7, 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>