单元测试之Robolectric

1. Robolectric

Robolectric允许我们可以在JVM上对Android应用程序进行测试
Robolectric框架允许我们编写单元测试,测试的代码使用了Android API,在本地JVM上运行
Robolectric mock了android.jar文件中的部分Android framework的代码
Robolectric支持资源的处理,例如inflation of views

Robolectric将所有Android类替换为shadow对象。

2. 使用Robolectric

3. Roboelectric test example

@RunWith(RobolectricGradleTestRunner.class)
@Config(constants = BuildConfig.class)
public class MyActivityTest {
    private MainActivity activity;

    @Before
    public void setup() {
        activity = Robolectric.buildActivity(MainActivity.class) .create().get();
    }

    @Test
    public void shouldHaveHappySmiles() throws Exception {
        String hello = new MainActivity().getResources().getString( R.string.hello_world);
        assertThat(hello, equalTo("Hello world!"));
    }

    @Test
    public void checkActivityNotNull() throws Exception {
        assertNotNull(activity);
    }

    @Test
    public void buttonClickShouldStartNewActivity() throws Exception {
        Button button = (Button) activity.findViewById( R.id.button2 );
        button.performClick();
        Intent intent = Shadows.shadowOf(activity).peekNextStartedActivity();
        assertEquals(SecondActivity.class.getCanonicalName(), intent.getComponent().getClassName());
    }

    @Test
    public void testButtonClick() throws Exception {
        MainActivity activity = Robolectric.buildActivity(MainActivity.class) .create().get();
        Button view = (Button) activity.findViewById(R.id.button1);
        assertNotNull(view);
        view.performClick();
        assertThat(ShadowToast.getTextOfLatestToast(), equalTo("Lala") );
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 Mock、PowerMock、Junit等都只是在java层面的单元测试。但对于android app开发来...
    johnnycmj阅读 8,062评论 1 2
  • 前言 在博客Android单元测试之PowerMockito,主要介绍PowerMockito的使用和对Java测...
    水木飞雪阅读 13,805评论 14 16
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,376评论 25 709
  • 我的未来在哪里,每次被打击了就开始清醒,不然浑浑噩噩的,我要让那些看不起我的人闭嘴,必须,^_^^_^^_^
    愚公捕鱼阅读 936评论 0 0
  • 陈奕迅的歌曲《十年》从耳边传来,透过耳膜,钻进心底。 十年之后,我们是朋友,还可以问候…… 十年的故事就这样点...
    梦鹿是一只猫阅读 1,683评论 1 2