我如何在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..."));
}
}
您可以尝试在robolelectric的帮助下进行单元测试。当你调用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