6

这个示例存储库有一个方法public LiveData<Resource<List<Repo>>> loadRepos(String owner)

https://github.com/googlesamples/android-architecture-components/blob/master/GithubBrowserSample/app/src/main/java/com/android/example/github/repository/RepoRepository.java

我的问题是为什么将 Android API(即android.arch.lifecycle.LiveData)添加到数据层中?

将框架 API 与您的数据/实体混合在一起不是反清洁架构吗?

现在还不需要使用 Robolectric 进行单元测试RepoRepository吗?

4

1 回答 1

3

LiveData 的目的是让观察者知道数据何时准备就绪以及何时发生变化。当您从存储库返回 LiveData 对象时,您的意思是您将很快(或最终)为调用者获取数据,并且您将继续让调用者知道数据的更改或更新。Android 架构中 LiveData 的实现非常简单,并且独立于核心 Android API。Android Architecture 类实际上是使 Android 编程更容易和更干净的附加组件。

因为它独立于 Android 核心,所以您不需要 Roboelectric 对其进行测试。但是,您需要管理线程以进行测试,因为 LiveData 通常需要使用后台线程来为观察者获取数据。

于 2017-07-27T22:08:45.703 回答