以下に示す方法を使用して、テストしているアクティビティが別のアクティビティを開始するかどうかを検証しています。
Instrumentation.addMonitor (IntentFilter filter, Instrumentation.ActivityResult result, boolean block)
ドキュメントによると、ブロック パラメーターは、モニターがアクティビティの開始をブロックするかどうかを制御します (既定の結果を返します)。そして、これが私が達成したいことです - 私は AcitivityResult をアクティビティの呼び出しに戻したいです: onActivityResult()。私が使用するコードを以下に示します。
Intent resultIntent = new Intent();
Bundle bundle = new Bundle();
bundle.putLong(ActivityBundleKeys.KEY_TEST, 2L);
resultIntent.putExtras(bundle);
ActivityResult result = new ActivityResult(Activity.RESULT_OK, resultIntent);
ActivityMonitor monitor = mInstr.addMonitor(MapViewActivity.class.getName(), result, true);
mSolo.clickOnView(btnMap); //button properly clicked, activity started
Activity currentActivity = mInstr.waitForMonitor(monitor);
私が正しく理解していれば、addMonitor() に「true」を渡すと、開始がブロックされ、呼び出しアクティビティがモックされた結果を受け取るはずです。それは起こっていません。要求されたアクティビティが正常に開始され、エミュレーターに表示されます。結果は呼び出しアクティビティに返されません。誰もそれで同様の問題を抱えていましたか?