- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 View 模型中有一个MediatorLiveData
,应该对模型层的LiveData
发射使用react,并在必要时采取措施并更新其侦听器。由于某些原因,源在测试期间不会更新。
class MyViewModel(private val repository: Repository) : ViewModel() {
private val liveData1: LiveData<String> = repository.getString1()
private val livedata2: LiveData<String> = repository.getString2()
val currentState = MediatorLiveData<MyState>
init {
currentState.addSource(liveData1) {
it?.let { string1 ->
doSomething()
currentState.postValue(String1Updated)
}
}
currentState.addSource(liveData2) {
it?.let { string1 ->
doSomethingElse()
currentState.postValue(String2Updated)
}
}
}
}
doSomething()
,并且currentState不会更新为String1Updated。
@RunWith(MockitoJUnitRunner::class)
class MyViewModelTest {
@get:Rule instantTaskExecutorRule = InstantTaskExecutorRule()
@Mock lateinit var mockRepository: Repository
@Mock lateinit var mockLiveData1: MutableLiveData<String>
@Mock lateinit var mockLiveData2: MutableLiveData<String>
@Mock lateinit var mockStateObserver: Observer<MyState>
lateinit var myViewModel: MyViewModel
@Before
fun setup() {
whenever(mockRepository.getLiveData1()).thenReturn(mockLiveData1)
whenever(mockRepository.getLiveData2()).thenReturn(mockLiveData2)
myViewModel = myViewModel(mockRepository)
}
@Test
fun `Does something when live data 1 is updated`() {
myViewModel.state.observeForever(mockStateObserver)
mockLiveData1.postValue("hello world")
verify(mockStateObserver).onChanged(String1Updated)
}
}
mockLiveData1
和
mockLiveData2
上,也不会导致在调解器中更新源。
最佳答案
如我的帖子中所示,我正在使用模拟LiveData
作为调解器数据的源。这些应该只是LiveData
实现。
@Before
fun setup() {
liveData1 = MutableLiveData()
whenever(mockRepository.getLiveData1()).thenReturn(liveData1)
liveData1.postValue("initial value")
myViewModel.state.observeForever(mockStateObserver)
}
关于android - MediatorLiveData源在测试期间不会更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54015043/
我正在开发一个项目,如果登录是下载一些文件成功,然后打开主 Activity 。如果不是这样,则不会登录也不下载文件并提示用户成功登录下载所需的文件。 失败后,如果用户写入正确的用户名和密码,则它应该
我对以下代码为何不起作用感到有点困惑: MutableLiveData mutableTest = new MutableLiveData<>(); MediatorLiveData mediator
问题简介:当使用 android 随 android jetpack 添加的 MediatorLiveData 时,我发现自己经常从各个来源调用相同的函数。例如,这可能是因为,每当更新源时,我都必须检
在我的应用程序中,我尝试使用 MediatorLiveData 来监听实时数据的变化。由于涉及数据库操作,我使用这样的执行程序服务。 MediatorLiveData mediatorLive
将 MediatorLiveData 与多个源一起使用的最佳做法是什么? 我在 ViewModel 中有一个 MediatorLiveData,可从 View 访问数据,最终应该显示该数据。 Medi
我有一个使用三个 LiveData 源的 MediatorLiveData。当它们中的任何一个发出一个新值并且我每个都有一个时,我使用这三个值来生成 UI 的输出。 其中两个来源是关于如何对列表进行排
在 Google NetworkBoundResource 类中,我无法理解 MediatorLiveData 的 addSource() 和 removeSource() 的顺序被使用。 例如--在
正如标题所说。我有两个 livedata 对象,它们从 API 获取一些数据。我想等待两个 livedata 完成数据获取,然后再对它们的值进行一些操作。这是我到目前为止所拥有的: public cl
因此,我尝试将 MediatorLiveData 用于通过使用 libphonenumber 将 ISO 国家/地区代码(例如“美国”)转换为国家/地区调用代码(例如“+1”)的相当简单的用例。结果屏
我想在 MediatorLiveData 中组合多个数据源。不幸的是,目前还没有很多例子。所以在我的 ViewModel 中我有 //all lists have been declared befo
我在我的应用程序上使用 MVVM + LiveData + Dagger 2.11。在 SignInFragment 上单击 TextView 向服务器发送请求并在 snackbar 上显示响应。它在
我正在使用 Transformations.switchMap在我的 ViewModel 中,所以在我的 fragment 中观察到的 LiveData 集合会对 code 参数的更改使用react。
哪种方法更推荐组合多个 LiveData:使用 MediatorLiveData 或 switchMap? // MediatorLiveData approach fun combine(
不确定发生了什么。我正在运行两个查询,然后使用 MediatorLiveData 和 Transformations.map 对其进行合并和转换。我将这个几乎完全相同的代码用于其他两个查询而没有问题。
我搜索了很多,但没有找到问题的清晰答案: MediatorLiveData 和 MutableLiveData 有什么区别? 使用它们的合适条件是什么。 最佳答案 首先我们需要知道MutableLiv
我是一名优秀的程序员,十分优秀!