我的应用程序使用标准的简单文本共享。在我的测试中,我想检查我的活动是否启动了共享意图。是否可以?
我在用ActivityInstrumentationTestCase2
test.
活动:
final Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, message);
sendIntent.setType("text/plain");
startActivity(Intent.createChooser(sendIntent, "Share"));
Test:
final IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(Intent.ACTION_SEND);
intentFilter.addDataType("text/plain");
final ActivityMonitor receiverActivityMonitor = getInstrumentation().addMonitor(
intentFilter, null, false);
TouchUtils.clickView(this, getActivity().findViewById(R.id.share_button));
final Activity shareActivity = receiverActivityMonitor.waitForActivityWithTimeout(500);
assertNotNull(shareActivity); // Fails
上述测试不起作用。有没有办法测试 ACTION_SEND 意图是否已启动?
临时解决方案
现在,在活动中我将意图保存到成员变量中:
mSendIntent = new Intent();
所以我可以通过测试来验证它:
assertEquals("android.intent.action.SEND", getActivity().mSharingIntent.getAction());
assertEquals("text/plain", getActivity().mSharingIntent.getType());
String sharedText = getActivity().mSharingIntent.getStringExtra(Intent.EXTRA_TEXT);
assertEquals("test I shared", sharedText);