單元測試之Robolectric

1. Robolectric

Robolectric允許我們可以在JVM上對Android應(yīng)用程序進行測試
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") );
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 背景 Mock、PowerMock、Junit等都只是在java層面的單元測試。但對于android app開發(fā)來...
    johnnycmj閱讀 3,034評論 1 2
  • 前言 在博客Android單元測試之PowerMockito,主要介紹PowerMockito的使用和對Java測...
    水木飛雪閱讀 11,335評論 14 16
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,153評論 25 708
  • 我的未來在哪里,每次被打擊了就開始清醒,不然渾渾噩噩的,我要讓那些看不起我的人閉嘴,必須,^_^^_^^_^
    愚公捕魚閱讀 159評論 0 0
  • 陳奕迅的歌曲《十年》從耳邊傳來,透過耳膜,鉆進心底。 十年之后,我們是朋友,還可以問候…… 十年的故事就這樣點...
    夢鹿是一只貓閱讀 293評論 1 2

友情鏈接更多精彩內(nèi)容