android - 使用 Robolectric 测试片段时如何修复“java.lang.ClassCastException”
问题描述
我正在使用 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);
}
解决方案
您无需强制转换活动即可获得进度条视图。这也应该有效:
progressBar = getActivity().findViewById(R.id.progress_bar);
推荐阅读
- python-3.x - 如何解析包含要转换为 python 识别的日期时间格式的日期的对象列
- android - react-native run-android 命令抛出“java.net.ConnectException:连接超时”错误
- amazon-web-services - Lambda 使用 boto3 创建 EC2 机器
- vhdl - 如何在一个 FPGA 上实现多个独立的器件?
- python - 在用户指定的范围内打印 5 的复数的程序
- java - 为什么这个 mySQL 数据库没有连接到 Netbeans?
- r - 对具有系统名称的多个变量运行相同的函数(即,基于试验编号)
- javascript - 错误的错误信息打印在错误的位置
- android-studio - 在 Android Studio 中将过滤器应用于图像时遇到问题
- reactjs - 如何使用 mapDispatchToProps 和父组件将道具传递给组件?