編輯:Android開發教程
前面介紹了Android測試的一些理論知識,從本篇開始的幾篇將結合ApiDemoTest示例來介紹Android測試的實例。在此之前可 以參照Android測試教程(3):測試項目 創建ApiDemos->tests 測試項目,本項目測試用來測試ApiDemos,主要目的是介紹 Android測試框架的使用方法。
當然要測試ApiDemos,事先要創建好項目ApiDemos。下圖顯示了創建好ApiDemos- >Tests後,ApiDemos->Tests中所含的Java類:
Android測試項目也 是一個Android應用項目,其基本使用方法和開發一般的Android應用非常類似,Android測試項目主要是利用Android測試框架編 寫測試用例來測試對應的Android應用的各個方面。
其中AllTests.java 定義如下:
public class AllTests extends TestSuite { public static Test suite() { return new TestSuiteBuilder(AllTests.class) .includeAllPackagesUnderHere() .build(); } }
使用TestSuiteBuilder 指明所有該包和其子包中定義的TestCase都為最終TestSuite 的一部分(需要被運行的測試 )。
AllTests.java 一般可以不用修改的應用到大部分的測試項目中,如果有特殊需要,可以使用 android.test.suitebuilder 的類定義那些Testcase 需要包含到最終的測試包(Test Suite) 中.
ApiDemosApplicationTests 測試介紹ApplicationTestCase的基本使用方法。
下圖為ApplicationTestCase 的繼承關系:
ApplicationTestCase 主要用來測試Application 類,提供了對Application類生命周期方法的基本支持,並可以支持 一些dependency injection 以幫助構造測試Application的的環境。
Application Lifecycle 支持, 每個Application 運行 都遵循一定的順序(生命周期方法),ApplicationTestCase提供下面方法來支持對Application生命周期方法的測試:
只有當測試用例調用createApplication()後才會執行Application 的onCreate 方法,從而使得你有機會在調用Application 的onCreate方法之前對測試框架做些調整。
當測試用例結束時,測試用例的tearDown 方法會被調用,然後會調用Application 的onDestroy()方法停止和銷毀 Application.
Dependency Injection 每個Application都依賴於運行它的Context 對象,Android測試框架允許你注入一個Mock的或者孤立 的context 對象,以實現真正的單元測試,如果只是想做一般的測試,你的Application方法將被注入全功能的Context對象,你 可以使用setContext 來注入你定義的Mock 的Context對象,setContext 必須在createApplication 之前調用。測試框架提供了 如MockContext, RenamingDelegatingContext, ContextWrapper 來幫助你構造用於測試Applicaton的Context對象。
本 例的代碼如下:
public class ApiDemosApplicationTests extends ApplicationTestCase<ApiDemosApplication> { public ApiDemosApplicationTests() { super(ApiDemosApplication.class); } @Override protected void setUp() throws Exception { super.setUp(); } @SmallTest public void testPreconditions() { } /** * Test basic startup/shutdown of Application */ @MediumTest public void testSimpleCreate() { createApplication(); } }
Android原生的VideoView的樣式真心弱爆了,但是擁有巨大用戶量的網易新聞客戶端居然使用的就是這個,真心服了網易的產品經理。目前主流的視頻網站,國內的如優酷、土
當執行某些正在處理的任務時,ProgressBar提供了一個可視化的反饋。例如,你在從web服務器下載數據 ,然後需要更新下載的狀態。在這種情況下,ProgressBar
有的時候當我們調試android程序時,往往因為installfailedinsufficientstorage這個問題而不能將工程文件讀入調試機,看似是由於內存空間不足
Android網絡應用開發,主要有兩種方式,一種是socket(是對tcp/udp協議的封裝),另外一種就是使用Http協議,Android中主要提供了兩種方式,Http