• 鍍金池/ 教程/ Android/ Android 測試教程(12):ServiceTestCase 示例
    monkeyrunner 簡(jiǎn)介
    Android 測試教程(14):ActivityInstrumentationTestCase2 示例
    ApplicationTestCase 示例
    Android 測試教程(13):TestCase 示例
    ActivityInstrumentationTestCase2 示例
    測試 Activity
    測試項目
    Android 測試教程(12):ServiceTestCase 示例
    測試相關(guān) API
    Monkey 命令行工具
    第一個(gè)測試項目 HelloWorldTest
    測試 Content Provider
    Android 測試教程(11):ActivityUnitTestCase 示例
    測試基礎
    AndroidTestCase 示例
    測試 Service

    Android 測試教程(12):ServiceTestCase 示例

    ServiceTestCase 為測試 Service 提供了一個(gè)可控的測試環(huán)境,它提供對 Service 生命周期的基本支持,並可以通過(guò)注入一些依賴(lài)對象來(lái)控制測試環(huán)境以便測試 Service。

    ServiceTestCase 的類(lèi)繼承如下圖所示:

    http://wiki.jikexueyuan.com/project/android-test-course/images/12.1.jpg" alt="picture12.1" />

    Service Lifecycle 支持, 每個(gè) Service 運行 都遵循一定的順序(生命周期方法),ServiceTestCase 提供下面方法來(lái)支持對 Service 生命周期方法的測試:

    • 每個(gè)測試方法調用之前首先會(huì )執行 setUp 方法,setUp 的基本實(shí)現是取得系統 Context ,如果你要重載 setUp 的話(huà),注意在第一行加上 super.setUp.
    • 在調用 startService(Intent) 或 bindService(Intent) 之後,ServiceTestCase 才會(huì )調用 Service 的 onCreate 方法,從而使你有機會(huì )在 Service 啟動(dòng)之前對測試環(huán)境做些調整。
    • 當你的測試方法調用 startService(Intent) 或 bindService(Intent) 之後,ServiceTestCase 調用 Service 的 onCreate 方法,然後再調用 Service 相應的 startService(Intent) 或 service 的bindService(Intent, ServiceConnection, int)方法。並保存用於 tracking 和支持 Lifecycle 對應的值。
    • 每個(gè)測試方法結束後,調用 tearDown 方法,這個(gè)方法 stop 並destroy 被測試的 service. 如果你需要重載 tearDown, 注意先調用 super.tearDown.

    Dependency Injection 每個(gè) Service 都依賴(lài)於運行它的 Context 對象和 Application 對象,ServiceTestCase 測試框架允許你注入這些對象(修改過(guò),Mocked 等)以實(shí)現真正的單元測試.

    LocalServiceTest 的代碼如下:

    
        public class LocalServiceTest
         extends ServiceTestCase<LocalService> {
    
         public LocalServiceTest() {
         super(LocalService.class);
         }
    
         @Override
         protected void setUp() throws Exception {
         super.setUp();
         }
    
         @SmallTest
         public void testPreconditions() {
         }
    
         /**
         * Test basic startup/shutdown of Service
         */
         @SmallTest
         public void testStartable() {
         Intent startIntent = new Intent();
         startIntent.setClass(getContext(), LocalService.class);
         startService(startIntent);
         }
    
         /**
         * Test binding to service
         */
         @MediumTest
         public void testBindable() {
         Intent startIntent = new Intent();
         startIntent.setClass(getContext(), LocalService.class);
         IBinder service = bindService(startIntent);
         }
    
        }
    

    testStartable 測試對應的 Service 能否正常啟動(dòng)。

    testBindable 測試對應的 Service 能否綁定成功

    Tags: Android 測試

    草莓视频在线观看视频6_免费草莓视频_草莓视频在线下载免费官网_草莓视频黄色在线观看