问题标签 [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.
android - 如何测试片段场景测试中可见的矢量drawable?
我已经编写了一些片段场景测试,它们会截取屏幕截图和一些点击事件。由于未显示图像视图,因此很少有测试失败。
似乎测试库(https://developer.android.com/training/basics/fragments/testing)中的测试活动使用了 FragmentActivity,它不是 AppCompatActivity 的子类。结果,这些图像视图不可见。我可以添加属性android:src
以使其在测试中可见,但这将是一个丑陋的修复。还有其他解决方案吗?
感谢任何评论或建议。
view_item.xml
构建.gradle.kts
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)。
如果我评论小吃店的创建,一切都会按预期工作。这里有什么问题,我该如何解决?
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 依赖项)?
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
android - Robolectric 启动一个有观察者的片段
如何使用 Robolectric 在测试范围内使用 LiveData 观察者启动片段
分段
我的测试使用 RobolectricTestRunner,因此我可以在测试范围内启动片段。
尝试运行测试时出现以下错误。我尝试在实例化 FragmentScenario 之前和之后将 Main looper 设置为空闲。
我试过以下
- 为 Main Looper 实现一个影子类。使用 Looper 模式注释类。
- 添加场景状态
我的测试依赖项。
我用来寻找解决方案的链接“ 测试 LiveData 转换? https://jeroenmols.com/blog/2019/01/17/livedatajunit5/
android - 使用 ViewBinding 测试片段场景
我正在尝试测试一个使用 viewBinding 来显示视图的片段,以及一个使用 viewModel 来获取该数据的片段。
我想编写一个 UI 测试来查看某些数据是否可见,但是到目前为止我没有运气,我希望有人可以帮助我,因为我对 UI 测试还是很陌生。
到目前为止,我尝试模拟 viewModel、liveData 和 viewBinding,但没有成功
这是我尝试做的一些示例类
我的视图模型:
我的片段
考试