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