我一直在使用here所述的observeForever()
方法来测试Room和LiveData已有一段时间了,并且它运行良好。但是,当我更改为Android Studio 3.2时(或者不确定是androidx
重构),该方法突然停止工作,并抛出
java.lang.IllegalStateException: Cannot invoke observeForever on a background thread
我们该如何解决呢?
最佳答案
我通过添加规则InstantTaskExecutorRule
解决了它。根据docs它将
所以需要添加
@get:Rule
val instantTaskExecutorRule = InstantTaskExecutorRule()
参加测试类以使其正常工作。相当于Java
@Rule
public InstantTaskExecutorRule instantTaskExecutorRule = new InstantTaskExecutorRule();
您还需要添加
androidTestImplementation "androidx.arch.core:core-testing:2.0.0"
到模型的
build.gradle
依赖项。