安卓上的测试用例问题



我有A类扩展IntentService和处理一些工作。

Class A extend IntentService {
    onHandleIntent(Intent) {
        Bundle extras = intent.getExtras();
        if (extras != null) {
            Messenger messenger = (Messenger) extras.get(NetworkConstant.MESSENGER_KEY);
            Message msg = Message.obtain();
            try {
                messenger.send(msg);
            }
                    catch (RemoteException e) {
                e.printStackTrace();
            }
        }
    }
}

现在我又有了一个B类

Class B {
  private void startNetworkService(Listener l) {
        Messenger messenger = new Messenger(handler);
        Intent networkServiceIntent = new Intent(context, A.class);
        context.startService(networkServiceIntent);
    }
/** The handler. */
    private Handler handler = new Handler() {
           Listener.onSuccess();
       }
}

现在我正在创建测试用例调用 startNetworkService() 方法,并且我已经在成功时传递了侦听器接收回调。

Class Test extend AndroidTestCase implement Listener{
   testService(){
      B b = new b();
      b.startNetworkService(this);
    }
  onSucess(){
    never got call back here.
  }
}

问题:- 我从未收到成功方法的回电。 如果我使用

mSem = new Semaphore(0); 
mSem.acquire();

将等待放在测试上。它卡住了,测试用例没有继续前进。你能帮我如何测试使用服务调用其他类的类吗

使用 mContext = getContext();

Class Test extend AndroidTestCase implement Listener{   
 private static Context mContext = null;
public void setUP() throws Exception{
    super.setUp();
}
public void tearDown() throws Exception{
    super.tearDown();
}

private void precondition() {
    mContext = getContext();
    assertNotNull(mContext);
    }
  testService(){
   precondition();
   // ....
}

我遇到了问题,问题在messenger.send(msg)中;在A类中。

 Messenger messenger = (Messenger) extras.get(NetworkConstant.MESSENGER_KEY);
            Message msg = Message.obtain();
            try {
                messenger.send(msg);
            }
                    catch (RemoteException e) {
                e.printStackTrace();
            }

信使通过B类的地方。在 messenger.send(msg) 回调后,永远不会返回到 B 类处理程序

  private Handler handler = new Handler() {
           Listener.onSuccess();
       }

最新更新