我正在开发一个Android应用程序。 我的应用基于MVP模式。
因此,当Activity的生命周期终止时,将调用演示者的unsubscribe()
函数。
unsubscribe()
函数仅清除“一次性”。
这是非常简单的代码,如下所示:
override fun unsubscribe() {
disposable.clear()
}
unsubscribe()
函数非常简单,因此我之前没有对其进行测试。
但是今天,我只想增加代码覆盖率。
所以我试图为此功能编写测试代码。
我的第一次尝试是:
@Test
fun unsubscribeTest() {
mPresenter.unsubscribe()
verify(mockDisposable).clear()
}
但是我不知道 clear()
函数是CompositeDisposable
类的函数,而不是Disposable
接口的函数。
所以我不能将其用作模拟。
答案 0 :(得分:0)
我用disposable.size()
解决了这个问题。
我将disposable
更改为可设置/可注射。
结果是:
@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())
}