[英]Test Case issue on Android
我有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();
}
}
现在,我正在创建testCase调用startNetworkService()方法,并且我已经传递了侦听器来接收对Sucess的回叫。
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的位置。 在messenger.send(msg)回调之后,永不返回B类处理程序
private Handler handler = new Handler() {
Listener.onSuccess();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.