Как я могу скрыть PackageManager с Robolectric

В моем приложении для Android есть простой метод, позволяющий вызвать намерение отобразить URL.

protected void launchBrowser(int id)
{
    Uri uri = Uri.parse( getString( id ) );
    Intent intent = new Intent( ACTION_VIEW, uri);

    PackageManager packageManager = getPackageManager();
    List activities = packageManager.queryIntentActivities(intent, 0);
    if (activities.size() > 0)
    {
        startActivity(intent);
    }
    else
    {
        Toast.makeText(getApplicationContext(),
                       "ERROR - no application to display a web page",
                       Toast.LENGTH_SHORT).show();
    }
}

Я использую Robolectric для модульного тестирования, но яУ меня возникли проблемы при проверке этого метода. В частности,getPackageManager() всегда возвращает ноль. Как я могу теньPackageManager? Я пытался создатьShadowPackageManager и звонитbindShadowClass, но ни один из моего кода не выполняется -getPackageManager() всегда возвращаетсяnull, Я также пытался скрыть контекст приложения и вернуть конкретныйStubPackageManager, но получил те же результаты. Может я'слишком долго искал / смотрел - есть ли лучший способ для модульного тестирования этого метода?

Ответы на вопрос(6)

Ваш ответ на вопрос