Подавить вызов супер-метода с помощью теневых классов Robolectric Android - PullRequest
0 голосов
/ 06 ноября 2019

Я хочу проверить вызов метода в методе onResume моей Activity. Моя активность расширяет AppCompatActivity.

Вызов метода super.onResume, вызывающий исключение при выполнении теста. Вот ошибка:

java.lang.Exception: Главный петлитель поставил в очередь неисполненные исполняемые файлы. Это может быть причиной сбоя теста. Вам может потребоваться вызов shadowOf (getMainLooper ()). Idle ().

Итак, я решил использовать класс Shadow для подавления вызова метода onResume super.

Класс Shadowкод:

@Implements(FragmentActivity.class)
public class ShadowFragmentActivity extends ShadowActivity {

   @Implementation
   public void onResume() {

   }
}

Вот мой тестовый класс:

@Config(sdk = 24, application = TestApplication.class, shadows={ShadowFragmentActivity.class})
 @RunWith(RobolectricTestRunner.class)
 public class LoginActivityTest {
       //------code-----//

@Test
public void shouldInvokeTrackingOnResume(){
    LoginActivity loginActivity = Robolectric.buildActivity(LoginActivity.class).get();
    loginActivity = spy(loginActivity);

    loginActivity.onResume();

    verify(mockAdobe).track(loginActivity);
}
}

Этот теневой класс не решает проблему. Я что-то пропустил? Пожалуйста, совет.

...