问题标签 [android-fragmentscenario]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
127 浏览

android - 如何测试片段场景测试中可见的矢量drawable?

我已经编写了一些片段场景测试,它们会截取屏幕截图和一些点击事件。由于未显示图像视图,因此很少有测试失败。

似乎测试库(https://developer.android.com/training/basics/fragments/testing)中的测试活动使用了 FragmentActivity,它不是 AppCompatActivity 的子类。结果,这些图像视图不可见。我可以添加属性android:src以使其在测试中可见,但这将是一个丑陋的修复。还有其他解决方案吗?

感谢任何评论或建议。

view_item.xml

构建.gradle.kts

0 投票
2 回答
176 浏览

android - android片段场景在小吃店创建期间崩溃

我有安卓应用程序。我正在使用片段场景编写测试来测试我的片段。我的测试很简单,看起来像这样:

所以我点击了一些按钮,当点击这个按钮时,小吃栏是这样的:

但我收到以下错误:

androidx.test.espresso.PerformException:在视图“id 为 com.gitlab.robert.cebula.expirydate:id/buttonRemove”上执行“单击 - 在坐标:809、1949 和精度:16、16”时出错。在 androidx.test.espresso.PerformException$Builder.build(PerformException.java:5) 在 androidx.test.espresso.base.DefaultFailureHandler.getUserFriendlyError(DefaultFailureHandler.java:25) 在 androidx.test.espresso.base.DefaultFailureHandler.handle (DefaultFailureHandler.java:36) 在 androidx.test.espresso.ViewInteraction.waitForAndHandleInteractionResults(ViewInteraction.java:106) 在 androidx.test.espresso.ViewInteraction.desugaredPerform(ViewInteraction.java:43) 在 androidx.test.espresso.ViewInteraction。在 com.example.expirydate.shoppingfragment.planningfragment.ShoppingPlanningFragmentTest 执行(ViewInteraction.java:94)。

如果我评论小吃店的创建,一切都会按预期工作。这里有什么问题,我该如何解决?

0 投票
0 回答
123 浏览

android - 使用 FragmentScenario 时的样式问题

使用FragmentScenariofromandroidx.fragment:fragment-testing测试片段 UI 时,并非所有样式都正确应用。

例如,有一个非常简单的应用程序,它只显示具有以下布局的片段:

fragment_main.xml

使用 Android Studio (4.1.2) 生成的默认主题,在运行应用程序时如下所示:

在此处输入图像描述

作为FragmentScenario测试运行时看起来不一样:

在此处输入图像描述

我可以理解ActionBar没有显示(因为它是 hostActivity而不是 a的一部分Fragment)。但是为什么Button样式不正确...??

0 投票
1 回答
338 浏览

android - 通过使用 FragmentScenario 停止和恢复来测试 androidx.fragment 生命周期,onCreateView() 调用了两次,但此错误已在 1.3.1 中修复

我正在为我的应用程序使用androidx.fragment:fragment-testing. 测试用例之一是检查所有底层逻辑在 Fragment 停止和恢复时是否正确运行,以模拟应用程序被最小化(主页按钮)并再次返回。这些测试利用FragmentScenario.moveToState(). 首先,我使用 编写了我的测试androidx.fragment:fragment-testing:1.2.5,它们都通过了。但是当我更新androidx.fragment:fragment-testing到时1.3.1,上述测试开始失败。

我检查了哪里出了问题,结果发现Fragment.onCreateView()在生命周期更改期间再次调用它,即使它不应该(在返回CREATED和返回的情况下RESUMED),导致视图“重置”到布局中声明的初始状态。我查了一下,发现了一个错误,描述中提到“onCreateView() 生命周期方法被调用了两次” https://issuetracker.google.com/issues/143915710(它也在https://medium.com/androiddevelopers中提到/fragments-rebuilding-the-internals-61913f8bf48e)。问题是它已经在 Fragment 1.3.0-alpha08 中修复,所以它不应该在 1.3.1 中发生。这意味着我的项目配置一定有问题。

这是重现该问题的示例代码。它表明视图不会保留其文本,也不会保留生命周期更改 RESUMED -> CREATED -> RESUMED 的可见性。手动测试不会重现此问题,它只会影响仪器测试。




由于我没有androidx.fragment:fragment直接声明,它是一个传递依赖,所以我想知道它是否可能被解析为小于 8 的 1.3.0-alpha,因此不包含修复。我添加了依赖约束以确保解决 1.3.1

但它没有帮助,所以情况并非如此

我的代码还有什么问题(很可能是 gradle 依赖项)?

0 投票
2 回答
77 浏览

android - 单击 Item Inside recycler 视图时,如何在 viewpager2 中膨胀它们各自的片段?

我有MyViewPager2适配器,其中包含四个 Fragment 和一个SemesterFragment,其中包含Recyclerview DepartmentRVAdapter。onItem 在回收器视图中单击我想移动到 viewpager2 中的相应片段


我怎样才能实现以下描述?

  • (onItem click on 0 pos)计算机科学系--->然后在viewpager2中加载片段(sem1,sem2,sem3,sem4)否则如果
  • (onItem 点击1 个pos)统计部门 ---> 然后在 viewpager2 中加载片段(sem1,sem2,sem3,sem4)
  • ETC

下面是我所拥有的,代码现在更加集中。谢谢

MainActivity.Java

DepartmentFragment.java

部门RVAdapter.Java

SemesterFragment.Java

RVFragment.java

MyViewPager2.java

第一学期片段.Java

SecondSemesterFragment.Java

第三学期片段.java

第四学期片段.java

学期数据类.java

activity_main.xml

roww_xml.xml

片段.xml

Fragment_semester.xml

片段开始.xml

frame_layout.xml

row_department.xml

0 投票
1 回答
707 浏览

android - Robolectric 启动一个有观察者的片段

如何使用 Robolectric 在测试范围内使用 LiveData 观察者启动片段

分段

我的测试使用 RobolectricTestRunner,因此我可以在测试范围内启动片段。

尝试运行测试时出现以下错误。我尝试在实例化 FragmentScenario 之前和之后将 Main looper 设置为空闲。

我试过以下

  • 为 Main Looper 实现一个影子类。使用 Looper 模式注释类。
  • 添加场景状态

我的测试依赖项。

我用来寻找解决方案的链接“ 测试 LiveData 转换? https://jeroenmols.com/blog/2019/01/17/livedatajunit5/

0 投票
0 回答
223 浏览

android - 使用 ViewBinding 测试片段场景

我正在尝试测试一个使用 viewBinding 来显示视图的片段,以及一个使用 viewModel 来获取该数据的片段。

我想编写一个 UI 测试来查看某些数据是否可见,但是到目前为止我没有运气,我希望有人可以帮助我,因为我对 UI 测试还是很陌生。

到目前为止,我尝试模拟 viewModel、liveData 和 viewBinding,但没有成功

这是我尝试做的一些示例类

我的视图模型:

我的片段

考试