У меня есть абстрактный класс, где я могу зарегистрировать событие жизненного цикла:
abstract class PollingServiceAbs<T> : LifecycleObserver {
private var timer: Timer? = null
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
open fun start() {
try {
timer = Timer()
timer?.schedule(object : TimerTask() {
override fun run() {
forcedFetch()
}
}, 0, POLLING_TIMEOUT)
} catch (e: Exception) {
e.printStackTrace()
}
}
@OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
open fun stop() {
try {
timer?.cancel()
timer?.purge()
} catch (e: Exception) {
e.printStackTrace()
}
timer = null
}
fun register(lifecycle: Lifecycle) {
lifecycle.addObserver(this)
}
И в моем докладчике у меня есть следующее развлечение, когда я регистрирую наблюдателя:
fun onCreate(lifecycle: Lifecycle) {
pollingService.contract = this
pollingService.register(lifecycle)
}
Как я могу проверить свое onStart()
и onStop()
функции?
UPD: Записать следующую реализацию, но состояние marks устарело:
@Test
@Throws(Exception::class)
fun onCreateTest() {
val lifecycleOwner: LifecycleOwner = mock(LifecycleOwner::class.java)
val lifecycle = LifecycleRegistry(mock(LifecycleOwner::class.java))
lifecycle.markState(Lifecycle.State.RESUMED)
Mockito.`when`(lifecycleOwner.lifecycle).thenReturn(lifecycle)
createPresenter(viewContract = mockView).onCreate(lifecycle)
assertNotNull(mockView)
Mockito.verify(mockPollingService).start()
Mockito.verifyNoMoreInteractions(mockView)
}