For investors
股價:
5.36 美元 %For investors
股價:
5.36 美元 %認真做教育 專心促就業(yè)
已經(jīng)在Android SDK中學習了很多關(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ù)來模擬各種操作。對于第一個問題,本篇對這個問題幅詳細說明下。
首先我們先想下,如果要實現(xiàn)對Activity的測試需要些什么?首先需要創(chuàng)建Activity(這個Android SDK中已經(jīng)提供了),然后可以控制Activity的生命周期,這些是最基本的。在Android SDK中說明過Activity的創(chuàng)建是異步的,也就是說當我們調(diào)用startActivty()后,這個函數(shù)立刻返回,而不是等待Activity創(chuàng)建 好后才返回,這就需要一些同步方面的操作。將前面的概括起來就是2個方面:控制Activity的生命周期與同步方面的問題。Android SDK為我們提供了 instrument,在android.test包中InstrumentationTestCase 類有個函數(shù)getInstrumentation()以及通過adb shell am instrument啟動測試例子的方法中,都提到了instrument,下面就對instrumentation詳細說明。
什么是Instrumentation?
Instrumentation是執(zhí)行application instrumentation代碼的基類。當應(yīng)用程序運行的時候instrumentation處于開啟,Instrumentation將在任何應(yīng)用 程序運行前初始化,可以通過它監(jiān)測系統(tǒng)與應(yīng)用程序之間的交互。Instrumentation implementation通過的AndroidManifest.xml中的標簽進行描述。
Instrumentation似乎有些類似與window中的“鉤子(Hook)函數(shù)”,在系統(tǒng)與應(yīng)用程序之間安裝了個“竊聽器”。
【免責聲明】本文部分系轉(zhuǎn)載,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點和對其真實性負責。如涉及作品內(nèi)容、版權(quán)和其它問題,請在30日內(nèi)與聯(lián)系我們,我們會予以更改或刪除相關(guān)文章,以保證您的權(quán)益!