如何在Android中测试此类以验证它确实打开了电子邮件发件人应用程序选择器,并且在选择应用程序时,字段已预先填写并且文件已附加?
是通过UI进行单元测试,集成测试还是自动测试。 我需要什么样的设置以及如何单独测试这个类:
public class EmailSender {
public static void sendEmailWithAttachment(Context context,
String[] recipient,
String subject,
String attachmentFilePath) {
Intent emailIntent = new Intent(Intent.ACTION_SEND);
emailIntent .setType("vnd.android.cursor.dir/email");
emailIntent .putExtra(Intent.EXTRA_EMAIL, recipient);
emailIntent .putExtra(Intent.EXTRA_STREAM, attachmentFilePath);
emailIntent .putExtra(Intent.EXTRA_SUBJECT, subject);
context.startActivity(Intent.createChooser(emailIntent , "Send email..."));
}
}
答案 0 :(得分:1)
您可以在Robolectric的帮助下尝试进行单元测试。 当你调用方法sendEmailWithAttachment时,你可以检查意图是否执行了启动电子邮件发送应用程序的工作,
ShadowActivity shadowActivity = shadowOf(activity);
Intent startedIntent = shadowActivity.getNextStartedActivity();
ShadowIntent shadowIntent = shadowOf(startedIntent);
assertThat(shadowIntent.getComponent().getClassName(), equalTo(targetActivityName));
您也可以验证意图的内容。
有关如何使用Robolectric的更多详情,请参阅http://www.vogella.com/tutorials/Robolectric/article.html