首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RxJava,我如何为disposable.clear()编写测试代码?

RxJava,我如何为disposable.clear()编写测试代码?
EN

Stack Overflow用户
提问于 2019-02-19 04:57:47
回答 1查看 1.2K关注 0票数 1

我正在开发一个Android应用程序。我的应用程序是基于MVP模式。

因此,当活动的生命周期终止时,将调用演示者的unsubscribe()函数。

unsubscribe()函数刚刚清除了“一次性”。它非常简单,如下所示:

代码语言:javascript
复制
override fun unsubscribe() {
    disposable.clear()
}

unsubscribe()函数非常简单,所以我以前没有测试过它。但今天,我只想增加代码覆盖率。所以我试着为这个函数编写测试代码。

我的第一次尝试是:

代码语言:javascript
复制
@Test
fun unsubscribeTest() {
    mPresenter.unsubscribe()
    verify(mockDisposable).clear()
}

但我不知道clear()函数是CompositeDisposable类的函数,而不是Disposable接口。

所以我不能用它来模仿。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-19 09:47:14

我用disposable.size()解决了这个问题。

我将disposable更改为可设置/可注入的。

结果是:

代码语言:javascript
复制
@Test
fun unsubscribeTest() {
    val d = CompositeDisposable()
    mPresenter.disposable = d

    assertEquals(0, mPresenter.disposable.size())

    d.add(Observable.just("").subscribe())
    assertEquals(1, mPresenter.disposable.size())

    mPresenter.unsubscribe()

    assertEquals(0, mPresenter.disposable.size())
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54759108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档