2017-01-19 6 views
1

У меня есть очень простой деятельности, которая перенаправляет пользователя на страницу Play Маркета в приложения, когда нажата кнопка:Протестируйте приложение запускает другое приложение в Android

public class MyActivity extends AppCompatActivity { 
    private static final String PLAY_STORE_URI = 
     "market://details?id=" + BuildConfig.APPLICATION_ID; 

    @Override 
    protected void onCreate(@Nullable Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.my_activity); 
     findViewById(R.id.go_to_play_store).setOnClickListener(this::goToPlayStore); 
    } 

    public void goToPlayStore(View view) { 
     Intent intent = new Intent(Intent.ACTION_VIEW); 
     intent.setData(Uri.parse(PLAY_STORE_URI)); 
     startActivity(intent); 
    } 
} 

Можно ли написать тест проверьте, что PlayStore запускается при нажатии кнопки? Лучше, можно ли проверить, показывает ли она ожидаемую страницу?

Я знаю, что с помощью ActivityMonitors можно протестировать переходы между действиями. Я также знаю, что могу проверить, что намерения отправляются с использованием Espresso Intents. Но могу ли я проверить, что действие пользователя запускает другое приложение?

ответ

0

Я бы предложил немного другой вопрос - это вам работа приложения, чтобы проверить это? Вы будете тестировать не свое приложение, а ОС Android и приложение Play Store Google.

То, к чему я подходил, заключается в явной информации о границах и осознании возможных сценариев.

Что я имею в виду, что, извлечь Intent манипуляции и вызова логики в тонкую службу (это четкое разъяснение границ части) и проверить свои Activity правильно взаимодействует с ним (путем построения Intent соответственно).

Часть о возможных сценариях осознает, что может случиться. Например, что делает ваше приложение (если есть), если у пользователя нет Play Store на телефоне.

0

Я нажмите на кнопку, а затем используйте:

intended(allOf(
    hasAction(Intent.ACTION_VIEW), 
    hasData("https://play.google.com/store/apps/...your app...") 
)) 
Смежные вопросы