如何根据可观察到的返回值对演示者方法进行单元测试?

亚历克斯塔

具有以下函数的实际实现,其中mTallesPreferences.isUserAuthenticated()返回Observable<Boolean>类型值:

override fun showInitialScreen() {
    mTallesPreferences.isUserAuthenticated()
            .subscribe { isAuthenticated ->
                if (isAuthenticated) mView?.showMainScreen()
                else mView?.showAccessScreen()
                mView?.closeCurrentScreen()
            }
 }

mView?.showAccessScreen()订户获取时如何调用是否调用isAuthenticated = false

我尝试了以下方法,但不幸的是NullPointerException出现在现场。

class LaunchPresenterTest {

    @Mock
    lateinit var mView: LaunchContract.View

    @Mock
    lateinit var mTallesPreferences: TallesPreferencesApi

    private lateinit var mPresenter: LaunchPresenter

    @Before
    fun setupLaunchPresenter() {
        MockitoAnnotations.initMocks(this)
        mPresenter = LaunchPresenter(mTallesPreferences)
    }

    @Test
    fun testShowInitialScreenNotAuthenticated() {
        mPresenter.showInitialScreen()
        Mockito.`when`(mTallesPreferences.isUserAuthenticated()).thenReturn(Observable.just(false))
        Mockito.verify(mView).showAccessScreen()
    }

}
穆罕默德K

您的功能顺序错误。当您调用时showInitialScreen()mTallesPreferences.isUserAuthenticated()不会被模拟返回您想要的值。重新排序您的测试方法,例如:

@Test
fun testShowInitialScreenNotAuthenticated() {
    Mockito.`when`(mTallesPreferences.isUserAuthenticated()).thenReturn(Observable.just(false))
    mPresenter.showInitialScreen()
    Mockito.verify(mView).showAccessScreen()
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Jest中,如何对一个可观察到的方法进行单元测试

当您进行返回可观察到的HTTP调用时,如何在Angular单元测试中使用fakesAync?

如何在Angular Jasmine Spec中测试主题和可观察到的返回值?

可观察到的异步管道未返回值

对无返回值的方法进行单元测试

如何对没有返回值但写入System.out的方法进行单元测试

Angular 2单元测试可观察到的错误(HTTP)

茉莉花:单元测试http服务错误可观察到

获取可观察到的返回值,而无需订阅调用类

对不返回值的函数进行单元测试

如何在React中正确进行GET调用以返回可观察到的值(类似于Angular中的方法,而不使用promises)?

Angular2-单元测试可观察到的错误“无法读取未定义的属性'subscribe'”

Angular 2组件中的单元测试“成功”和“错误”可观察到的响应

如何对没有返回值的php类构造函数进行单元测试

如何对函数的返回值进行单元测试-Angular(Jasmine / Karma)

如何处理在单元测试嘲笑RxJava2观察到引发异常

单元测试:如何从模拟接口异步返回值

保持可观察到的错误并返回所有值

在Angular 2中对可观察对象进行单元测试

rxjs如何在角度服务中一起返回可观察到的值

如何从http请求返回可观察到的

可观察到的Redux:如何从回调返回操作?

如何从订阅中返回可观察到的

如何从有前景的函数中返回可观察到的

如何通过监视可观察的angularfire2进行单元测试?

Android:如何使用mockK对可观察的concatMap进行单元测试

等待单元测试角度中的可观察内部方法

返回可观察到的延期

从 eventListener 可观察到的角度返回