Android單元測試類及其關係

官方的單元測試使用了Junit測試框架,也就是JunitFramework,下面有TestCase這個類,這個類是Android官方sdk的測試基類, 在TestCase這個類的基礎上Android又擴展了一個叫AndroidTestCase的類,這個類在原來JunitTestCase的基礎上又擴充了一些Android系統特性的一些屬性,主要包含ApplicationTestCase、ServiceTestCase、ProviderTestCase2幾個主要的子類。其中ApplicationTestCase是測試整個應用程序的類,容許注入一個模擬的Context到應用程序中,在應用程序啓動以前初始化測試參數,而且在應用程序結束以後銷燬它。ServiceTestCase是用來測試單個service的類,能夠注入一個模擬的Context,也就是上下文,或者模擬的Application,或者讓Android提供Context或者MocaApplication這樣的方法。ProviderTestCase2是測試單個ContentProvider的一個類,這個測試類的測試是與操做系統孤立的,這樣一些面向Android組件的測試類。在Android主要的組件中並無包含Activity這樣主要的組件,Activity其實使用了Instrumentation的測試框架來實現的,也就是InstrumentationTestCase這個類,InstrumentationTestCase這個類繼承也是從JunitTestCase類繼承過來的,在這個類中,能夠使用Instrumentation的測試框架來測試Activity。使用Instrumentation Android就能夠向程序發送事件來自動化的進行UI的測試而且能夠精確的控制Activity的啓動,監測Activity的生命週期。InstrumentationTestCase也有幾個子類,其中SingleLaunchTest Case是用來測試單個Activity的類,可以觸發一次Setup、一次Tadm。而不是每一個方法調用的時候都觸發。這個主要是針對單個Activity的一個測試類。另一個就是ActivityTestCase,這個類又有兩個子類:ActivityInsumentationTestCase2和ActivityUnitTestCase,框架

ActivityUnitTestCase是對單個Activity進行單一測試的類,支持注入模擬的Context或者Application,用於對Activity進行單元測試的,不一樣於其餘的Instrumentation的類,它不能注入模擬的Intent。ActivityInsumentationTestCase2,這是一個在正常的系統環境中來測試Activity的類,它能夠注入一個模擬的Intent,不一樣於ActivityUnitTestCase,能夠在UI線程來運行測試方法,而且能夠給應用程序的UI來發送按鍵、觸摸的事件。ActivityInsumentationTestCase2其實還有一個ActivityInsumentationTestCase這樣的類,已經被官方廢棄了,目前是使用的ActivityInsumentationTestCase2這樣的測試類,這也是在使用Insumentation測試框架的時候最常用的一個測試類。ide

相關文章
相關標籤/搜索