android - 如何使用 powermock 模拟具有 RxJava 的私有方法?
问题描述
趋势视图模型
class TrendingViewModel(
val trendingRepository: TrendingRepository
) : ViewModel() {
fun fetchTrendingRepos() {
if (isConnected) {
compositeDisposable.add(
trendingRepository.getTrendingRepos().subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({ response ->
run {
saveDataToDb(response)
}
},
{ error ->
}
)
)
}
private fun saveDataToDb(response: List<TrendingRepo>) {
trendingRepository.insertTrendingUsers(response)
.subscribeOn(Schedulers.io())
.observeOn(Schedulers.io())
.subscribe(object : DisposableCompletableObserver() {
override fun onComplete() {
Log.d("Status", "Save Success")
}
override fun onError(e: Throwable) {
Log.d("Status", "error ${e.localizedMessage}")
}
})
}
趋势视图模型测试
@RunWith(JUnit4::class)
class TrendingViewModelTest {
@Test
fun testWithNetwork() {
trendingViewModel.isConnected = true
Mockito.`when`(trendingRepository.getTrendingRepos()).thenReturn(
Single.just(list) )
trendingViewModel.fetchTrendingRepos()
// trendingRepository.insertTrendingUsers(list).blockingAwait()
verify(trendingRepository, times(1)).getTrendingRepos()
}
解决方案
推荐阅读
- hive - 缺少 Hive 复杂列注释
- ios - 将 Whatsapp 图片发送给 ios 中的特定联系人
- rust - 解决递归类型绑定的不同策略是什么?
- wpf - 从 app.xaml 绑定到 MainWindowViewModel 属性
- r - R: make 2 subset vectors so that values are different index-wise
- python - 如何使用 pyTelegramBotAPI 将此数据保存到 txt
- python-3.x - 属性错误 Django 2.2.5
- python - 如何读取文件中的某些 4 位数字并移动到另一行并执行相同的操作等等
- flutter - flutter_webview_plugin:回退到 SSLv3,因为主机不支持 TLS:www.sandbox.paypal.com:443
- java - 为什么下面代码中head.next的值不为null?