Voici un BroadcastReceiver de mon projet, je suis à la recherche de l'unité de test. Lorsque l'utilisateur effectue un appel téléphonique, il saisit le numéro de téléphone, et met en place une intention de démarrer une nouvelle activité, en passant le numéro de téléphone.
public class OutgoingCallReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context xiContext, Intent xiIntent)
{
if (xiIntent.getAction().equalsIgnoreCase(Intent.ACTION_NEW_OUTGOING_CALL))
{
String phoneNum = xiIntent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
Intent intent = new Intent(xiContext, MyActivity.class);
intent.putExtra("phoneNum", phoneNum);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
xiContext.startActivity(intent);
setResultData(null);
}
}
}
Jusqu'à présent, mon unité de test ressemble à ceci:
public class OutgoingCallReceiverTest extends AndroidTestCase
{
private OutgoingCallReceiver mReceiver;
@Override
protected void setUp() throws Exception
{
super.setUp();
mReceiver = new OutgoingCallReceiver();
}
public void testStartActivity()
{
Intent intent = new Intent(Intent.ACTION_NEW_OUTGOING_CALL);
intent.putExtra(Intent.EXTRA_PHONE_NUMBER, "01234567890");
mReceiver.onReceive(getContext(), intent);
}
}
Cela va à travers le code, mais je veux que mon test pour être en mesure de vérifier que l'intention a été envoyé, et pour vérifier le numéro de téléphone sur elle. Comment dois-je faire?
Je peux également tester que l'appel est annulé (à cause de la setResultData(null) de la ligne)?