Вот BroadcastReceiver из моего проекта, который я ищу для модульного тестирования. Когда пользователь звонит по телефону, он захватывает номер телефона и устанавливает намерение начать новое действие, передавая номер телефона.
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);
}
}
}
Пока мой модульный тест выглядит так:
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);
}
}
Это выполняется через код, но я хочу, чтобы мой тест мог проверить, было ли отправлено намерение, и проверить номер телефона на нем. Как мне это сделать?
Могу ли я также проверить, что телефонный звонок отменяется (из-за строки setResultData (null))?