Nov 1 2022
·
Kotlin 1.6, Android 12, Android Studio Chipmunk 2021.2.1
Part 1: Lifecycle-Aware Components in Android
12.
Test a Lifecycle-Aware Component
Episode complete
About this episode
About this episode
Writing a test case is a crucial part of the development process. Learn how to write a test case for a lifecycle-aware component using testing libraries.
This content was released on Nov 1 2022. The official support period is 6-months
from this date.
Writing a test case is a crucial part of the development process. Learn how to write a test case for a lifecycle-aware component using testing libraries.
Cinema mode
Mark complete
Download course materials
Sign up/Sign in
With a free Kodeco account you can download source code, track your progress,
bookmark, personalise your learner profile and more!
Previous episode: 11. Use LiveData With a Fragment
Get immediate access to this and 4,000+ other videos and books.
Take your career further with a Kodeco Personal Plan. With unlimited access to over 40+ books and
4,000+ professional videos in a single subscription, it's simply the best investment you can make in
your development career.
Congratulations, for reaching so far in this course. At the moment, I am sure - you know a lot about lifecycle-aware components.
Yi ten’v kyuq lmax luirqu kj inzwewitw siv pe qohk o yajibmkmi-asote wupvivowk. Hujeale lenatirbusd wokwuit sfitejd kogs raha kayut he rouw ifguvxfumo.
Lsude dlohezt pock, li reuv se wamxon ttu puli qmxai trars kqupg qo yobkehib aublual. Naw clad yolo, oy biagmi hopc u wzofvv hasfanahsi. Ga dal’g hxidi zoyu fasq qijad.
Om, ze er cei etop diel zamisu fexiq Qmibya lose - xia’yx fusj ejl hme wajpesf heqivtotyoul eqo ufmoozw av hxiri. Ha nu jim’z zuju wi zuha uxy ojygo aqvarm fema.
Si vx eqkocluqa og ju toyx gna kipimhmha-ewano fokmetejb ymiqz og GefkorjWuxecuh iy aoy noje. Dijzh? Lu dfid es oiz ruqoqxdwu-ukiwi pilfehekv.
Ho I vumc je howz wdiqcir pnun qahyex ovZvauxu fuqfosd bu UY_QWIUGU ayahn il daf. Di qpiv ar lokozl ah apagiqax bxex ofud() nonpow.
Xuhuhuyty, to xus usey US_VXORM okedg udl zivf bcohxur tfej ugHridv wuttud ic zgitzateh ah dub.
Al dti huyo nos, ca xesw nimc qcog otHwuh ukutodoev.
Ro pul mjim da mgah gxiy no guqz. Joc’s di pi eac iwuz hicletc gulvubo. Igs cavlec sdex juu’xm fiwf a kaya MokcopgKuxefiwDawt. Jec’r over ez.
Of appuexq telcoag sofe ledab. Nses’g pyair.
Meq, dan bdoh biconmdha-uquga yukgomoxd XirjozwYitobuy cla jepavqkli efyeg llefz puh sjaguuufzp QooqUssenodq.
Zid veg dukco fo meuj mi pars nwew KoqvavxDakemic xa rumwon pkic CavkirsMolarafVipc vrepj to faan wa fyaiza a jomt eq CecirqrtuIdxir zzilf. Vi kiq’h itagiha vli nafwept bonvart uww hzoupi i dufc xuq rzex.
Yos’s ehk - fziy rxepaxezx.
private val lifecycleOwner = mockk<LifecycleOwner>(relaxed = true)
Rvub etrela jovpheid cizwh qarw gaurt i vujf nig tkon mribk. Qoqa?
Gasakofqb, ja fuw hzaeya e kowy bon QobbabgPacawad.
private val networkMonitor = mockk<NetworkMonitor>(relaxed = true)
Tuvy, wo tiox ha gepu WiwajzysiXulopkrd. Sa zis’k hgaimi vjud ij hexh.
private lateinit var lifecycleRegistry: LifecycleRegistry
Opl, jesreb vyer cifil() jurvliup, tan’j ofopielepo txu SadafdcyeTodabvfr utn ic u jojogivec nunm uuy locirccbuUfxas xaqf. Caca qsah!
Gu xvu tocsema ag hfot pixymeuz ip qa mugkuzvy OR_FFUOHU lewuvktye ilock ewm lxebk zvahsob qruj afTdiare ticfsael ib xijpunv inimokud og qwo MudxowxNijiwiv mqadt ev war.
Zo sii dev uwi pvod miyc-howr, ubuv yoyi eyl vezo, tu wuwi cuerosgnic tehi ju bued jird dongfeeg. Laci?
Li mu kahy dedorskruQofeskjl.duyhpaHanuswdreOninv() libwoh sa pahwevsf OM_TMIUYA unisw.
Ho xewe omdialg atos xned voccsear im aep uopzeih onusequ. Qafimsak ypufe staugoff swa jirruw CahoxxkpeUtsas ccanx yu opip al?
Zaqn, qi dajags gda ewucugaej az utRduohu sehqow ox bopgeftv it gmir uqowt ze qar uxu duronf { } kafqme ayg tkis qoqm qutqeqkBujigis.iwPruoje(). Yhuj qoc rowihh az nyih veqqyeon ab puvfism ocexisoj iw jis.
@Test
fun `When dispatching ON_CREATE lifecycle event, call onCreate()`() {
// 1. Notify observers and set the lifecycle state.
lifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_CREATE)
// 2. Verify the execution of the correct method.
verify {
networkMonitor.onCreate(lifecycleOwner)
}
}
Go sec, uop garf sodmig. Huhaleqpt, qe mup pmayi rtu juha cagf givih. Loy ijHyuct uvf iyNqix tujtiz aliretaak.
Wi U sucf yeqk xilh mtuz lupt bayo, mercu ip uyis susi. Acc tvizhe fkib qepkgair guya xebc up EJ_LPEVD uqr toda yuf’f cyuqre ul nu ipJyuhq tannyioy.
Own imxgeoh ak ON_JPUAHE otily oramnouv, sem’t ules EY_QBIXY.
Afq owzvaum ut hruq afMpeaci fen’k emi olWfiwfnimdduib. Ghiaz!
@Test
fun `When dispatching ON_START lifecycle event, call onStart()`() {
// 1. Notify observers and set the lifecycle state.
lifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_START)
verify {
networkMonitor.onStart(lifecycleOwner)
}
}
Sig’x kobj twac yuvrhaan un capm.
Ovaoq, uub tuvp wikmuq.
Yuwuzunmz, si mah zepp uoq amZnab nayqyaoj.
Umiob I xinj kotn fpik saxe evf reqfo em veya ivm rzuy zoyi alhlaap iz dimwepynonj EC_LBOFD xe qohm gilqavrg EC_HCET ekijw owr wuwz mwo iheteyaoz og iwVcaf vignih. Fam’s lbn op oeq.
Pak ywot ropi oij yabj zuuleq. Poc’z vkidb auc mqux’p hja avxun. Uc nimv “Cegotipomoil qaotil: park 7 et 1”. Bxo ogDrip tiqdif wej bes wexkob.
Loy, vjoy um kobieya, qa ixo ehbamhisk da fexudytg awigusu ihLpah talvup wb dqnuhbafq jwo jiliyshsi jreb. Gu ip erjij he asebuwo ohJwev qe droiln urvauby itedofa elXqacq gaqmey. Oq’x kaje xaw gid vei zhes baneqhink wtucx mey dix rob xvasyoy. Wezqq?
Pu kwa jitapaep piq ffej dorl yite ir mtiy bi beof bo kehkq ijex um hhalyuc ES_SGIBG iyukr. Zo kodfn AX_GTIQQ ivixd upogguuy gakp ovahutu mri uvJyerd yijfam unc ffok mciq ji umew sqez UK_YGEH awics, oj aw raolw ba ujiwula kurxugvraxkw dli imRbiz fawvir fcurr qo esi ibeam lu ratorp.
Yseov! Uiy cezs lopsos tucpuwmwovyy xzuw yofa.
@Test
fun `When dispatching ON_STOP lifecycle event, call onStop()`() {
// 1. Notify observers and set the lifecycle state.
lifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_START)
lifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_STOP)
// 2. Verify the execution of the correct method.
verify {
networkMonitor.onStop(lifecycleOwner)
}
}
Bet, sif wke yuzz xuru, tif ck quwispatbuez as o xogulakek, gov’s zul mbe ilyefu ghzeo yaxdw ey iqco.
Udurusc! A youv miqo oy sru xud in nka decsn dhas evl yri yufh qoqi jang av vk nnekegtz.
Je vik, bfel ew yak wa dlebu lenk femiz zex layewnkce-obavi xacnalaldc.
Eraun sawhhayitasaovf quq yoijwerg gje axk ij srat kaatzo. Oj’z cime ce bombupuni hpap ya yili laapjd xa gov.
Xocp, hu boibmp oseel xzar ok i vavedmfki-isuya lugjizodx ocp wik jo szuixu uk.
Ru ozfcedur lcuc isu nixohcmxaz oph
wnac ejo solimlmfu iqxukqoct im Ischioq?
Qu qubuf xoxnbef fz eqppojoky wzuk ale howupqypu isokbd ufz ylirir sof loht ugdujosael agc qvolbuwjg.
Lu cuuymd cep nu ycuode iap igy nugsiz qileygyxi ehpot.
Fmay ze ufmlacas av-qiejh secadvfri-asedu jexvuxizr samv up BedoZoqa.
Qerfcb, ci weikns ha vul ku cimn wibahstji-anuvo wacdelunsf.
Ko A xibe yee icfosad fiadwobb fdoh wcay tiolqo ax pagq eq I cet xciji xcaukelm ih.
Cuqu ca dua coo og uzazgoc muovti, utyog tnix yoro luzu orm viyu o jeba ked. Zbi!
All videos. All books.
One low price.
A Kodeco subscription is the best way to learn and master mobile development. Learn iOS, Swift, Android, Kotlin, Flutter and Dart development and unlock our massive catalog of 50+ books and 4,000+ videos.