Как исправить 'java.lang.ClassCastException' при тестировании фрагмента с использованием Robolectric - PullRequest
0 голосов
/ 02 апреля 2019

Я тестирую свои фрагменты с помощью Robolectric, и я столкнулся с проблемой в некоторых моих фрагментах, которая приводит к тому, что они становятся непроверяемыми.Я создаю индикатор выполнения в своей Деятельности, а затем использую его в своих фрагментах.Это означает, что я применяю getActivity () к соответствующему действию (в этом случае LoginActivity).Однако когда он запускается с Robolectric, он выдает следующую ошибку:

java.lang.ClassCastException: org.robolectric.shadows.support.v4.SupportFragmentTestUtil $ FragmentUtilActivity не может быть приведен к com.arproject.russell.ar_t.login.LoginActivity

Любая помощь в том, как я могу решить эту проблему, будет принята с благодарностью.

    public static LoginFragment newInstance() {
        return new LoginFragment();
    }

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        progressBar = ((LoginActivity) getActivity()).findViewById(R.id.progress_bar);
    }

1 Ответ

3 голосов
/ 02 апреля 2019

Вам не нужно разыгрывать свою активность, чтобы получить представление индикатора выполнения. Это также должно работать:

progressBar = getActivity().findViewById(R.id.progress_bar);
...