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