Я новичок в тестировании на Android, я хочу протестировать IntentService, и в настоящее время я расширяю ServiceTestCase.как проверить JUnit IntentService
Я пытаюсь использовать ResultReceiver
, но проблема в том, что OnReceiveResult
никогда не вызывается в тестовом корпусе. (Я также попытался создания ResultReceiver
с new Handler()
в качестве аргумента insetad из null
, но с тем же результатом.
, что я делаю неправильно? , что это правильный способ испытать IntentService
?
это услуга :
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;
}
}
}
и это испытание:
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);
}
Можете ли вы привести пример использования ReentrantLock здесь? –
Мне тоже очень понравился бы пример (даже два года спустя). Спасибо. – JDenais
Привет, любой контекст, который я использовал для инициализации намерения, похоже, выбрасывает исключение нулевого указателя. Как вы создали свой контекст? – kyrax