在Android Studio中進(jìn)行單元測(cè)試和UI測(cè)試 - 8.創(chuàng)建并運(yùn)行Espresso測(cè)試

系列教程

在工程的整體視圖上,找到以(androidTest)后綴結(jié)尾的包名并創(chuàng)建一個(gè)新的Java類(lèi)。可以將它命名為MainActivityInstrumentationTest,將如下代碼粘貼過(guò)去。

*** 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
    }

}

測(cè)試類(lèi)通過(guò)AndroidJUnitRunner運(yùn)行,并執(zhí)行sayHello()方法。下面將逐行解釋都做了什么:

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

你也可以右鍵點(diǎn)擊域名運(yùn)行測(cè)試,選擇Run>MainActivityInstrume...(第二個(gè)帶Android圖標(biāo)的)

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

Github下載測(cè)試源碼

下一篇:在Android Studio中進(jìn)行單元測(cè)試和UI測(cè)試 - 9.祝賀!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容