InstantTaskExecutorRule

InstantTaskExecutorRule

我一直在使用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依赖项。

09-25 21:44