Espresso:测试活动显示从库中选择的图像

时间:2017-05-30 21:03:11

标签: android android-espresso

我的Android应用中存在以下问题:

我有一个片段(在MainActivity中托管),其中包含一个ImageButton。点击后,它会通过startActivityForResult打开图库。当用户从图库中选择图像时,图库本身将关闭,所选图像将显示在DialogActivity中。

一切都在Runtime上完美运作。

如何使用Espresso测试这种情况?

提前谢谢大家。

请注意:在堆栈溢出中搜索我发现什么都不符合我的要求。

1 个答案:

答案 0 :(得分:0)

实际上,如果您将测试用例分成两部分,可以在Espresso中进行测试:

  • 验证应用是否会打开图库应用
  • 确认应用程序在选择图像时打开DialogActivity

对于第一部分,您可以使用espresso-intents。基本上,你会声称发送了相应的意图。

假设你像这样启动Gallery应用程序:

Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE);

您可以使用以下方式对其进行测试:

intended(allOf(hasAction(equalTo(Intent.ACTION_GET_CONTENT)),
               hasType(is("image/*"))))

对于第二部分,由于是处理onActivityResult的MainActivity,您可以创建一个调用@VisibleForTesting的{​​{1}}公共方法,然后传递给它包含图像的意图。最后,通过onActivityResult调用公开方法。