Robotium フレームワークを使用して、アプリケーションのブラック ボックス テストを行っています。テスト対象のアプリは、新しいアプリケーションをインストールするたびにステータス バーに通知を送信します。その通知をクリックしたいのですが、適切な方法が見つかりませんでした。
1 つの通知を手動でクリックすると、次のlogcat
行が表示されます。
I/ActivityManager( 148): START {flg=0x14000000 cmp=com.test.package/.activity.FrontActivity bnds=[0,38][240,86] (has extras) u=0} from pid -1
I/ActivityManager( 148): START {flg=0x14000000 cmp=com.test.package/.activity.ResultActivity u=0} from pid 8600
I/ActivityManager( 148): Displayed com.test.package/.activity.FrontActivity: +1s183ms
I/ActivityManager( 148): Displayed com.test.package/.activity.ResultActivity: +744ms
Robotium が 2 つの異なるアプリケーションを同時にテストできないことは知っています。また、外部アプリケーションの通知を受け取ることができないことも知っています。
また、次のコードを使用して、保留中のインテントを取得して起動しようとしました。
Context context = this.getInstrumentation().getTargetContext().getApplicationContext();
String intentClassString = "com.test.package.activity.FrontActivity";
Class<?> intentClass = null;
try {
intentClass = Class.forName(intentClassString);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
Intent intent = new Intent(context, intentClass);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_NO_CREATE);
try {
pendingIntent.send();
} catch (CanceledException e) {
e.printStackTrace();
}
アクティビティは実際に表示されますが、手動で呼び出して得られるものとは異なります。私が渡すコンテキスト、または保留中の意図を呼び出す方法に何か問題があると思います。
この問題に関するヒントはありますか?通知のクリックをシミュレートするより良い方法はありますか?