android - 将 FragmentScenario 中的片段设置为从 DataBindingIdlingResource 使用的问题
问题描述
我正在关注这个 Google Codelab并在第 8 页(任务:使用数据绑定进行端到端测试),在第 8 步(编写 DataBindingIdlingResource),您必须创建一个名为DataBindingIdlingResource.kt
.
class DataBindingIdlingResource : IdlingResource {
[...]
}
private fun View.getBinding(): ViewDataBinding? = DataBindingUtil.getBinding(this)
/**
* Sets the activity from an [ActivityScenario] to be used from [DataBindingIdlingResource].
*/
fun DataBindingIdlingResource.monitorActivity(
activityScenario: ActivityScenario<out FragmentActivity>
) {
activityScenario.onActivity {
this.activity = it
}
}
/**
* Sets the fragment from a [FragmentScenario] to be used from [DataBindingIdlingResource].
*/
fun DataBindingIdlingResource.monitorFragment(fragmentScenario: FragmentScenario<out Fragment>) {
fragmentScenario.onFragment {
this.activity = it.requireActivity()
}
}
问题:
是最后一个功能fun DataBindingIdlingResource.monitorFragment
,因为fragmentScenario.onFragment
提供 onlyonFragment(action: Nothing)
而不是onFragment {}
。
我该如何解决这个问题?谢谢。
解决方案
我已经通过将定义更改为
fun <T : Fragment> DataBindingIdlingResource.monitorFragment(fragmentScenario: FragmentScenario<T>) {
推荐阅读
- django - django 模板 - 字符串连接到变量名
- python - 我在使用框架 scrapy: 403(forbidden) 或 200 with unworking def parse 抓取 https://www.autotrader.co.uk/ 时遇到了一些问题
- vue.js - 加载组件时如何检索数据
- arrays - 如何计算自定义类型数组的各个变量的总和?
- javascript - 如何在 Ramda 中使用传入的 args 参数调用传入的 args 函数?
- javascript - 无法使用 Jquery 将对象 ID 推送到输入值
- firebase - Xamarin.Android RecyclerView 通知项目更改导致问题
- kable - 为什么 save_kable to PDF 会导致质量差的 PDF?
- php - 将 PHP 变量传递给 dropzone.js
- computational-geometry - 实现数据点的封闭 B 样条插值