这个示例存储库有一个方法public LiveData<Resource<List<Repo>>> loadRepos(String owner)
我的问题是为什么将 Android API(即android.arch.lifecycle.LiveData
)添加到数据层中?
将框架 API 与您的数据/实体混合在一起不是反清洁架构吗?
现在还不需要使用 Robolectric 进行单元测试RepoRepository
吗?
这个示例存储库有一个方法public LiveData<Resource<List<Repo>>> loadRepos(String owner)
我的问题是为什么将 Android API(即android.arch.lifecycle.LiveData
)添加到数据层中?
将框架 API 与您的数据/实体混合在一起不是反清洁架构吗?
现在还不需要使用 Robolectric 进行单元测试RepoRepository
吗?
LiveData 的目的是让观察者知道数据何时准备就绪以及何时发生变化。当您从存储库返回 LiveData 对象时,您的意思是您将很快(或最终)为调用者获取数据,并且您将继续让调用者知道数据的更改或更新。Android 架构中 LiveData 的实现非常简单,并且独立于核心 Android API。Android Architecture 类实际上是使 Android 编程更容易和更干净的附加组件。
因为它独立于 Android 核心,所以您不需要 Roboelectric 对其进行测试。但是,您需要管理线程以进行测试,因为 LiveData 通常需要使用后台线程来为观察者获取数据。