系列教程
- 在Android Studio中進行單元測試和UI測試 - 1.概述
- 在Android Studio中進行單元測試和UI測試 - 2.創(chuàng)建新的Android Studio工程
- 在Android Studio中進行單元測試和UI測試 - 3.配置支持單元測試的工程
- 在Android Studio中進行單元測試和UI測試 - 4.創(chuàng)建第一個單元測試
- 在Android Studio中進行單元測試和UI測試 - 5.運行單元測試
- 在Android Studio中進行單元測試和UI測試 - 6.配置支持Instrumentation測試的工程
- 在Android Studio中進行單元測試和UI測試 - 7.為app添加簡單的交互

在工程的整體視圖上,找到以(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é)果。