For investors
股價(jià):
5.36 美元 %For investors
股價(jià):
5.36 美元 %認(rèn)真做教育 專心促就業(yè)
已經(jīng)在Android SDK中學(xué)習(xí)了很多關(guān)于JUnit的內(nèi)容,但是感覺一直有幾個(gè)問題沒有解決(不知道大家是否有同樣的感受)JUnit的測(cè)試都自動(dòng)化的,完全是不需要任何 操作的,有2個(gè)問題我一直都還沒有找到答案,這2個(gè)問題如下:
JUnit可以用來測(cè)試Android的基本組成元素:Activity、Service、Provider,那么我們?nèi)绾慰刂七@些基本元素運(yùn)行 的,這需要Android系統(tǒng)提供一些底層操作的接口才可以做到。
如何模擬界面操作,比如說:?jiǎn)螕艚缑嫔系陌粹o、選擇菜單等。
對(duì)于第二個(gè)問題,我在Cview中似乎找到了答案,Cview中提供一些界面操作的函數(shù),例如:performClick(),看來Android SDK還是提供了一些這方面的函數(shù)來模擬各種操作。對(duì)于第一個(gè)問題,本篇對(duì)這個(gè)問題幅詳細(xì)說明下。
首先我們先想下,如果要實(shí)現(xiàn)對(duì)Activity的測(cè)試需要些什么?首先需要?jiǎng)?chuàng)建Activity(這個(gè)Android SDK中已經(jīng)提供了),然后可以控制Activity的生命周期,這些是最基本的。在Android SDK中說明過Activity的創(chuàng)建是異步的,也就是說當(dāng)我們調(diào)用startActivty()后,這個(gè)函數(shù)立刻返回,而不是等待Activity創(chuàng)建 好后才返回,這就需要一些同步方面的操作。將前面的概括起來就是2個(gè)方面:控制Activity的生命周期與同步方面的問題。Android SDK為我們提供了 instrument,在android.test包中InstrumentationTestCase 類有個(gè)函數(shù)getInstrumentation()以及通過adb shell am instrument啟動(dòng)測(cè)試?yán)拥姆椒ㄖ?,都提到了instrument,下面就對(duì)instrumentation詳細(xì)說明。
什么是Instrumentation?
Instrumentation是執(zhí)行application instrumentation代碼的基類。當(dāng)應(yīng)用程序運(yùn)行的時(shí)候instrumentation處于開啟,Instrumentation將在任何應(yīng)用 程序運(yùn)行前初始化,可以通過它監(jiān)測(cè)系統(tǒng)與應(yīng)用程序之間的交互。Instrumentation implementation通過的AndroidManifest.xml中的標(biāo)簽進(jìn)行描述。
Instrumentation似乎有些類似與window中的“鉤子(Hook)函數(shù)”,在系統(tǒng)與應(yīng)用程序之間安裝了個(gè)“竊聽器”。
【免責(zé)聲明】本文部分系轉(zhuǎn)載,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé)。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)?jiān)?0日內(nèi)與聯(lián)系我們,我們會(huì)予以更改或刪除相關(guān)文章,以保證您的權(quán)益!