Tôi mới tham gia thử nghiệm Android, tôi muốn thử nghiệm IntentService và tôi hiện đang mở rộng ServiceTestCase.cách JUnit kiểm tra IntentService
Tôi đang cố gắng sử dụng ResultReceiver
nhưng vấn đề là OnReceiveResult
không bao giờ được gọi trong trường hợp thử nghiệm. (Tôi cũng đã cố gắng tạo ra ResultReceiver
với new Handler()
như insetad đối số của null
nhưng với kết quả tương tự.
những gì tôi làm sai? cách thích hợp để kiểm tra một IntentService
?
đây là dịch vụ là gì :
public class MyService extends IntentService {
public MyService() {
super("MyService");
}
public MyService(String name) {
super(name);
}
@Override
protected void onHandleIntent(Intent intent) {
final int action = intent.getIntExtra("action", 0);
final int request = intent.getIntExtra("request", 0);
final ResultReceiver receiver = (ResultReceiver) intent.getExtras().get("receiver");
if (receiver == null) {
return;
}
if (action == 0 || request == 0) {
receiver.send(0, null);
return;
}
}
}
và đây là thử nghiệm:
public void testHandleInvalidRequests() {
ResultReceiver receiver = new ResultReceiver(null) {
@Override
protected void onReceiveResult(int resultCode, Bundle resultData) {
fail();
}
};
Intent intent = new Intent(mContext, MyService.class);
intent.putExtra("receiver", receiver);
startService(intent);
}
Bạn có thể cho một ví dụ của việc sử dụng ReentrantLock đây? –
Tôi cũng sẽ rất quan tâm đến một ví dụ (thậm chí hai năm sau). Cảm ơn bạn. – JDenais
Hi, bất kỳ bối cảnh tôi được sử dụng để khởi tạo Intent dường như ném một ngoại lệ con trỏ null. Bạn đã thiết lập bối cảnh của mình như thế nào? – kyrax