在Android Studio中進行單元測試和UI測試 - 8.創(chuàng)建并運行Espresso測試

系列教程

在工程的整體視圖上,找到以(androidTest)后綴結(jié)尾的包名并創(chuàng)建一個新的Java類??梢詫⑺麨?code>MainActivityInstrumentationTest,將如下代碼粘貼過去。

*** MainActivityInstrumentationTest.java*

package com.example.testing.testingexample;

import android.support.test.InstrumentationRegistry;
import android.support.test.espresso.action.ViewActions;
import android.support.test.rule.ActivityTestRule;
import android.support.test.runner.AndroidJUnit4;
import android.test.ActivityInstrumentationTestCase2;
import android.test.suitebuilder.annotation.LargeTest;

import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;

import static android.support.test.espresso.Espresso.onView;
import static android.support.test.espresso.action.ViewActions.click;
import static android.support.test.espresso.action.ViewActions.closeSoftKeyboard;
import static android.support.test.espresso.action.ViewActions.typeText;
import static android.support.test.espresso.assertion.ViewAssertions.matches;
import static android.support.test.espresso.matcher.ViewMatchers.withId;
import static android.support.test.espresso.matcher.ViewMatchers.withText;

@RunWith(AndroidJUnit4.class)
@LargeTest
public class MainActivityInstrumentationTest {

    private static final String STRING_TO_BE_TYPED = "Peter";

    @Rule
    public ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule<>(
        MainActivity.class);

    @Test
    public void sayHello(){
        onView(withId(R.id.editText)).perform(typeText(STRING_TO_BE_TYPED), closeSoftKeyboard()); //line 1

        onView(withText("Say hello!")).perform(click()); //line 2

        String expectedText = "Hello, " + STRING_TO_BE_TYPED + "!";
        onView(withId(R.id.textView)).check(matches(withText(expectedText))); //line 3
    }

}

測試類通過AndroidJUnitRunner運行,并執(zhí)行sayHello()方法。下面將逐行解釋都做了什么:

  • 1.首先,找到ID為editText的view,輸入Peter,然后關(guān)閉鍵盤;
  • 2.接下來,點擊Say hello!的View,我們沒有在布局的XML中為這個Button設置id,因此,通過搜索它上面的文字來找到它;
  • 3.最后,將TextView上的文本同預期結(jié)果對比,如果一致則測試通過;

你也可以右鍵點擊域名運行測試,選擇Run>MainActivityInstrume...(第二個帶Android圖標的)

這樣就會在模擬器或者連接的設備上運行測試,你可以在手機屏幕上看到被執(zhí)行的動作(比如在EditText上打字)。最后會在Android Studio輸出通過和失敗的測試結(jié)果。

Github下載測試源碼

下一篇:在Android Studio中進行單元測試和UI測試 - 9.祝賀!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,234評論 25 708
  • 本篇教程翻譯自Google I/O 2015中關(guān)于測試的codelab,掌握科學上網(wǎng)的同學請點擊這里閱讀:Unit...
    TestDevTalk閱讀 141,319評論 55 485
  • 本文章轉(zhuǎn)載于搜狗測試 本文轉(zhuǎn)自簡書,是作者翻譯Google I/0 2015中關(guān)于測試的codelab。 目錄 1...
    夜境閱讀 1,266評論 1 0
  • gensim 安裝 1.安裝依賴庫: Python >= 2.6. Tested with versions 2....
    御風之星閱讀 2,290評論 0 0
  • 轉(zhuǎn)眼間,自己公眾號開通已一年之久,本著治病救人,懲前毖后的原則和精神,對自己一年的寫字來一個小結(jié),希望能夠在沉沉的...
    瘋讀閱讀 337評論 0 0

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