Есть много хороших документов, которые рассматривают место тестирования модулей, например Android - Robolectric - Unit testing request location updates (LocationManager), но, к сожалению, не нашли ничего, что могло бы предложить провайдер местоположения. Поскольку я новичок в Robolectric, у меня все еще нет четкого представления о том, как это работает. Любая идея была бы оценена.Как установить поставщика тестового местоположения Robolectric?
Следующий код - метод, который у меня есть в моей деятельности. Я показываю cardView, если этот метод возвращает false, иначе он невидим. Поэтому я действительно хочу проверить видимость этого представления, но перед этим мне нужно высмеять провайдера местоположений, чтобы вернуть то, что я хочу. Это то, что я ищу на первом шаге. Благодаря
private boolean isLocationEnabled()
{
int locationMode = 0;
String locationProviders;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)
{
try
{
locationMode = Settings.Secure.getInt(this.getContentResolver(), Settings.Secure.LOCATION_MODE);
}
catch (Settings.SettingNotFoundException e)
{
Logger.logException(e);
}
return locationMode != Settings.Secure.LOCATION_MODE_OFF;
}
else
{
locationProviders = Settings.Secure.getString(this.getContentResolver(),
Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
return !TextUtils.isEmpty(locationProviders);
}
}
wow, awesome Я этого не знал. Это мой пример для тех, кто ищет: «Settings.Secure.putInt (RuntimeEnvironment.application.getContentResolver(), Settings.Secure.LOCATION_MODE, Settings.Secure.LOCATION_MODE_HIGH_ACCURACY);' – Hesam
Отлично! Благодарю. Это также помогло моему приложению обработать уведомления Android из модульных тестов с помощью Settings.ACTION_NOTIFICATION_LISTENER_SETTINGS и имени пакета моих модульных тестов –