2016-08-08 1 views
0

Как я могу проверить этот класс в Android, чтобы убедиться, что он действительно открывает приложение для выбора отправителя электронной почты, и когда приложение выбрано, поля предварительно заполнены и файл прикреплен?Как я могу тестировать этот класс в Android?

Должно ли это быть единичным тестом или интеграционным тестом или автоматическим тестом через пользовательский интерфейс. Какие настройки мне нужно и как я могу проверить только этот класс в изоляции:

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...")); 
    } 

} 
+1

Вы маркированы вопрос с андроид-эспрессо тег, но я думаю, вы должны использовать другие инструменты, такие как UI Automator (https://developer.android.com /training/testing/ui-testing/uiautomator-testing.html) для таких вещей или Robolectric, как писал Нех – jeprubio

ответ

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

Смежные вопросы