Android 測(cè)試框架也提供對(duì) Service 測(cè)試的支持,基本類(lèi)為 ServiceTestCase,因?yàn)?Service 類(lèi)通常假定和它是和 Client 是分開(kāi)使用的,因此你可以無(wú)需使用 Instrumentation 來(lái)測(cè)試 Service。
當(dāng)你設(shè)計(jì)一個(gè) Service 時(shí),你應(yīng)該考慮測(cè)試用例中如何檢查 Service 的當(dāng)前狀態(tài),比如你在 onCreate ,onStartCommand 中啟動(dòng)一個(gè) Service,一般沒(méi)有一個(gè)全局變量來(lái)表示 Service 是否成功,你可能需要自己定義一個(gè)全局變量用于測(cè)試用例中。
ServiceTestCase 中提供 getService() 可以取得當(dāng)前被測(cè)試的 Service對(duì)象。
ServiceTestCase 為 AndroidTestCase 的子類(lèi),因此可以測(cè)試和 Permission 相關(guān)的功能,并提供 Mock 的Application 和 Context 對(duì)象為測(cè)試 Service提供了一個(gè)隔離的測(cè)試環(huán)境。
后面提供具體例子。