具有以下函数的实际实现,其中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()
}
}
您的功能顺序错误。当您调用时showInitialScreen()
,mTallesPreferences.isUserAuthenticated()
不会被模拟返回您想要的值。重新排序您的测试方法,例如:
@Test
fun testShowInitialScreenNotAuthenticated() {
Mockito.`when`(mTallesPreferences.isUserAuthenticated()).thenReturn(Observable.just(false))
mPresenter.showInitialScreen()
Mockito.verify(mView).showAccessScreen()
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句