2011-06-09 36 views

回答

0

因爲你沒有給太多的信息,我的回答假設你使用的是服務或活動,因爲這些病例很可能是您有困難的人。如果您只是處理BroadcastReceiver,則直接在BroadcastReceiver上調用onReceive。

下面是一些代碼,應該讓你去:

public class MyTests extends AndroidTestCase { 

private BroadcastReceiver mPackageAddedReceiver; 

@Override 
protected void setUp() throws Exception 
{ 
    super.setUp(); 
    this.setContext(new MyContextWrapper(getContext())); 
} 

public void test_PackageAdded_AssertStuff() 
{ 
    Intent packageAdded = new Intent(Intent.ACTION_PACKAGE_ADDED); 
    packageAdded.setData(Uri.parse("package://my.package")); 
    mPackageAddedReceiver.onReceive(getContext(), packageAdded); 

    // Do Asserts 
} 

private class MyContextWrapper extends ContextWrapper 
{ 
    public MyContextWrapper(Context base) 
    { 
     super(base); 
    } 

    @Override 
    public Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter, 
      String broadcastPermission, Handler scheduler) 
    { 
     if (filter.hasAction(Intent.ACTION_PACKAGE_ADDED)) { 
      mPackageAddedReceiver = receiver; 
     } 

     return super.registerReceiver(receiver, filter, broadcastPermission, scheduler); 
    } 
}; } 

你可能會想補充一點,你支持更多的行動。