使用Robolectric测试片段时如何修复'java.lang.ClassCastException'

问题描述 投票:0回答:1

我正在使用Robolectric测试我的片段,我在一些片段中遇到了一个问题,导致它们变得不可测试。我正在我的Activity中创建一个进度条,然后在我的片段中使用它。这意味着我将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);
    }
android robolectric
1个回答
3
投票

您无需投射活动即可获得进度条视图。这也应该有效:

progressBar = getActivity().findViewById(R.id.progress_bar);
© www.soinside.com 2019 - 2024. All rights reserved.