系列教程
- 在Android Studio中進(jìn)行單元測(cè)試和UI測(cè)試 - 1.概述
- 在Android Studio中進(jìn)行單元測(cè)試和UI測(cè)試 - 2.創(chuàng)建新的Android Studio工程
- 在Android Studio中進(jìn)行單元測(cè)試和UI測(cè)試 - 3.配置支持單元測(cè)試的工程
- 在Android Studio中進(jìn)行單元測(cè)試和UI測(cè)試 - 4.創(chuàng)建第一個(gè)單元測(cè)試
- 在Android Studio中進(jìn)行單元測(cè)試和UI測(cè)試 - 5.運(yùn)行單元測(cè)試
- 在Android Studio中進(jìn)行單元測(cè)試和UI測(cè)試 - 6.配置支持Instrumentation測(cè)試的工程
- 在Android Studio中進(jìn)行單元測(cè)試和UI測(cè)試 - 7.為app添加簡(jiǎn)單的交互
在工程的整體視圖上,找到以(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é)果。