Ich habe einen SMSReceiver für Android geschrieben und alles funktioniert auf echten Geräten und wenn ich die App über Telnet teste.Testen eines Android-Broadcast-Empfängers für SMS
Aber wie kann ich einen Komponententest für die folgenden onReceive Methode in Android Studio erstellen?
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
if (bundle!=null){
Object[] smsExtras = (Object[]) bundle.get("pdus");
String format = (String)bundle.get("format");
String strMessage = "";
for (Object smsExtra : smsExtras) {
SmsMessage smsMessage;
if (Build.VERSION.SDK_INT < 23){
smsMessage = SmsMessage.createFromPdu((byte[]) smsExtra);
}else {
smsMessage = SmsMessage.createFromPdu((byte[]) smsExtra, format);
}
String messageBody = smsMessage.getMessageBody();
String messageSource = smsMessage.getOriginatingAddress();
strMessage += "SMS from " + messageSource + " : " + messageBody;
Log.i(AppConstants.DEBUG_TAG, strMessage);
}
}
}
Sie können hier keine Komponententests schreiben, da Sie den Kontext in onReceive benötigen –