在 Android Studio 中对 类 执行 Junit 测试,无需初始化移动设备/模拟器

Execute Junit tests on classes in Android Studio without initialising mobile device / emulator

有没有办法在 Android Studio 中针对特定 class 执行测试,而无需将移动设备用作测试环境?我希望测试在我的开发机器上执行。有问题的 classes 不包含任何 Android 特定代码。

这是 Android 开发中的一个非常常见的问题,Robolectric 已经解决了这个问题。这允许您的测试在 JVM 上 运行,因此可以在 Android Studio 中 运行。下面的例子取自他们的网站。

@RunWith(RobolectricTestRunner.class)
public class MyActivityTest {

  @Test
  public void clickingButton_shouldChangeResultsViewText() throws Exception {
    MyActivity activity = Robolectric.setupActivity(MyActivity.class);

    Button button = (Button) activity.findViewById(R.id.button);
    TextView results = (TextView) activity.findViewById(R.id.results);

    button.performClick();
    assertThat(results.getText().toString()).isEqualTo("Robolectric Rocks!");
  }
}