系列教程
- 在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
)后綴結尾的包名并創(chuàng)建一個新的Java類∑降溃可以將它命名為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
朗伶,然后關閉鍵盤弦撩; - 2.接下來,點擊
Say hello!
的View论皆,我們沒有在布局的XML中為這個Button設置id益楼,因此,通過搜索它上面的文字來找到它纯丸; - 3.最后偏形,將
TextView
上的文本同預期結果對比,如果一致則測試通過觉鼻;
你也可以右鍵點擊域名運行測試俊扭,選擇Run>MainActivityInstrume...(第二個帶Android圖標的)
這樣就會在模擬器或者連接的設備上運行測試,你可以在手機屏幕上看到被執(zhí)行的動作(比如在EditText
上打字)坠陈。最后會在Android Studio輸出通過和失敗的測試結果萨惑。