Intereting Posts
Aapt не найден при создании нового приложения для Android в NetBeans Android Fatal Signal 11 Что делает DetailedState.VERIFYING_POOR_LINK для Изображение android в списке, которое думает «за пределами» окна NavigationView + селектор + эффект эффекта пульсации выбран не работает Как отправить код, который будет запускаться в основном потоке Android из отдельного потока на C ++? Достигнутый размер MAX для кэша операторов compiled-sql для базы данных Как исправить 23.0.1 \ aapt.exe '' завершено с ненулевым значением выхода 1 Javax.crypto.Cipher работает по-разному с Android 6 Marshmallow Затухание в анимации при загрузке изображения Использование Picasso Android: как распространять платное приложение при оплате Google Play не доступно в моей стране Запустить средство просмотра намерений для отображения изображения с URL-адреса Преобразование InputStream в BufferedReader Как изменить значок меню переполнения Android Thread.sleep останавливает все вложенные Asyntasks

Robolectric 2 – создать активную проверку с намерением

Я пишу блок-тест с Robolectric. Настройка выглядит так:

@RunWith(RobolectricTestRunner.class) public class MiAirlineActivityTest { @Before public void setUpFor() { Intent intent = new Intent(HOW_TO_PASS_CONTEXT_HERE, MiAirlineActivity.class); intent.putExtra(EMPLOYEEID_EXTRA, "username"); miAirlineActivity = Robolectric.buildActivity(MiAirlineActivity.class) .withIntent(intent).start().get(); } } 

Как передать контекст при создании нового намерения. Я следовал примеру из этого вопроса.

Там @David говорит,

«… мне нужно было дать контекст и класс Activity, который он отправлял, чтобы"

Как я могу это сделать?

Примечание. Пожалуйста, не отмечайте его как дубликат вышеуказанного связанного вопроса. Я задаю новый вопрос, так как я не мог добавить комментарий.

Попробуй это

 Intent intent = new Intent(Robolectric.getShadowApplication().getApplicationContext(), MiAirlineActivity.class); 

Стройте свою деятельность с намерением

 Intent intent = new Intent(HOW_TO_PASS_CONTEXT_HERE,MiAirlineActivity.class); intent.putExtra(EMPLOYEEID_EXTRA, "username"); iAirlineActivity = Robolectric.buildActivity(MiAirlineActivity.class).withIntent(intent).create().get(); 

Посмотрите на roboelectric docs здесь

Intent intent = new Intent (ShadowApplication.getInstance (). GetApplicationContext (), Activity.class);

 miAirlineActivity = Robolectric.buildActivity(MiAirlineActivity.class).create().get(); Intent intent = new Intent(); intent.putExtra(EMPLOYEEID_EXTRA, "username"); miAirlineActivity.setIntent(intent); miAirlineActivity.onCreate(new Bundle()); 

Это запустит вашу деятельность с желаемым намерением

Нет необходимости создавать контекст и целевой класс Activity с помощью конструктора. Попробуй это:

 @Before public void setUpFor() { Intent intent = new Intent(); intent.putExtra(EMPLOYEEID_EXTRA, "username"); miAirlineActivity = Robolectric.buildActivity(MiAirlineActivity.class) .withIntent(intent).start().get(); }