Class BackgroundTestRule

java.lang.Object
org.robolectric.junit.rules.BackgroundTestRule
All Implemented Interfaces:
org.junit.rules.TestRule

public final class BackgroundTestRule
extends Object
implements org.junit.rules.TestRule
Let tests to run on background thread, if it has annotation BackgroundTestRule.BackgroundTest.

This is useful for testing logic that explicitly forbids being called on the main thread.

Example usage:

 @Rule public final BackgroundTestRule backgroundTestRule = new BackgroundTestRule();

 @Test
 @BackgroundTest
 public void testInBackground() {
   assertThat(Looper.myLooper()).isNotEqualTo(Looper.getMainLooper());
 }

 @Test
 public void testInForeground() throws Exception {
   assertThat(Looper.myLooper()).isEqualTo(Looper.getMainLooper());
 }
 
  • Constructor Details

  • Method Details

    • apply

      public org.junit.runners.model.Statement apply​(org.junit.runners.model.Statement base, org.junit.runner.Description description)
      Specified by:
      apply in interface org.junit.rules.TestRule