android 測試框架 Espresso的使用
先配置一下
點(diǎn)擊
根據(jù)下圖選好
再去 model 的 build.gradle 中添加依賴
1:添加在 defaultConfig 下面 testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" (默認(rèn)是添加了的)
2:
androidTestCompile 'com.android.support:support-annotations:24.2.1' (這個(gè)后面的版本號跟v7包保持一致)
androidTestCompile 'com.android.support.test:runner:0.5'
androidTestCompile 'com.android.support.test:rules:0.5'
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'
androidTestCompile 'com.android.support.test.espresso:espresso-intents:2.2'
接下來是代碼部分
1,要測試哪個(gè)activity 就直接在 activity中右鍵--》go to --》test --》create new test--》。。。。跟著提示來就行
2,
舉個(gè)例子:我取名WelcomeActivity,那么通過 1 的步驟我成功創(chuàng)建了WelcomActivityTest 這個(gè)測試類,但是這個(gè)測試類是空的,所以接下里
第一步:@RunWith(AndroidJUnit4.class) ,這個(gè)是更改 測試編譯器,現(xiàn)在我們是測試android ,假如測試java業(yè)務(wù)代碼可以改成Junit4.class,編譯器集中,目前我就只了解這兩種
第二步:確認(rèn)要測試的activity,其實(shí) 1 中的步驟只是快速創(chuàng)建測試類而已,跟要測哪個(gè)activity是沒關(guān)系的,所以 1 的步驟可以用直接在androidTest目錄下創(chuàng)建測試類來取代,回歸正題,
@Rule
public ActivityTestRule<WelcomActivity> mActivityTestRule = new ActivityTestRule<WelcomActivity>(WelcomActivity.class);
這里的@Rule 就是確認(rèn)測試的activity,下面的代碼照些就行
第三步: 找到 view --》給view添加值--》結(jié)果比對。大概思路就是這樣,
@Test
public void inputText(){ Espresso.onView(ViewMatchers.withId(R.id.edittext)).perform(ViewActions.click()).perform(ViewActions.replaceText("abc")); Espresso.onView(ViewMatchers.withId(R.id.button)).perform(ViewActions.click()); Espresso.onView(ViewMatchers.withId(R.id.result_textview)).check(ViewAssertions.matches(ViewMatchers.withText("abc")));
}
這里代碼的意思就是:獲取到EditText,點(diǎn)一下,輸入abc,接著獲取button,點(diǎn)擊一下button,再獲取Textview ,看textview的內(nèi)容是不是abc。
注意點(diǎn):測試方法要有@Test 修飾,onView()就是找你想找的view,可以通過id啊,text啊,等標(biāo)識來查找,perform()是動(dòng)作的意思,比如點(diǎn)擊view,給edittext 輸入內(nèi)容。check()就是結(jié)果對比,判斷自己給定的內(nèi)容與實(shí)際內(nèi)容是否符合。