您好,登錄后才能下訂單哦!
轉(zhuǎn)載處(找到不原文出處,作者請指正):http://blog.csdn.net/xianming01/article/details/7893505
已經(jīng)在Android SDK中學(xué)習(xí)了很多關(guān)于JUnit的內(nèi)容,但是感覺一直有幾個問題沒有解決(不知道大家是否有同樣的感受)JUnit的測試都自動化的,完全是不需要任何操作的,有2個問題我一直都還沒有找到答案,這2個問題如下:
JUnit可以用來測試Android的基本組成元素:Activity、Service、Provider,那么我們?nèi)绾慰刂七@些基本元素運行的,這需要Android系統(tǒng)提供一些底層操作的接口才可以做到。
如何模擬界面操作,比如說:單擊界面上的按鈕、選擇菜單等。
對于第二個問題,我在Cview中似乎找到了答案,Cview中提供一些界面操作的函數(shù),例如:performClick(),看來Android SDK還是提供了一些這方面的函數(shù)來模擬各種操作。對于第一個問題,本篇對這個問題幅詳細(xì)說明下。
首先我們先想下,如果要實現(xiàn)對Activity的測試需要些什么?首先需要創(chuàng)建Activity(這個Android SDK中已經(jīng)提供了),然后可以控制Activity的生命周期,這些是最基本的。在Android SDK中說明過Activity的創(chuàng)建是異步的,也就是說當(dāng)我們調(diào)用startActivty()后,這個函數(shù)立刻返回,而不是等待Activity創(chuàng)建好后才返回,這就需要一些同步方面的操作。將前面的概括起來就是2個方面:控制Activity的生命周期與同步方面的問題。Android SDK為我們提供了 instrument,在android.test包中InstrumentationTestCase 類有個函數(shù)getInstrumentation()以及通過adb shell am instrument啟動測試?yán)拥姆椒ㄖ?,都提到了instrument,下面就對instrumentation詳細(xì)說明。
什么是Instrumentation?android.app包中Instrumentation類結(jié)構(gòu),如下圖所示
其包含有2個內(nèi)部類:ActivityMoniter、ActivityResult
然后我們看下Instrumentation類的函數(shù),列舉其主要函數(shù)如下:
看了這些,我們在結(jié)合前面說的2個方面:制Activity的生命周期與同步方面的問題,在Instrumentation類中都實現(xiàn)了,尤其是些同步操作方面的。
Instrumentation簡單使用的例子
選擇Instrumentation面板后,我們就可以編輯Instrumentation標(biāo)簽了,界面如何操作在這里就不說明了,主要說明屬性值的意義:
總結(jié)說明
學(xué)習(xí)完了Instrumentation,心中的很多問題都沒有了,還需要到Android SDK中去深入的學(xué)習(xí)這個類,才能更好的測試Activity對象。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。