package Ġcom . mr kaz . tok oin . presentation . ui . main Ċ Ċ import Ġandroidx . arch . core . executor . testing . Instant Task Executor Rule Ċ import Ġcom . mr kaz . tok oin . Base UT Test Ċ import Ġcom . mr kaz . tok oin . di . configure Test App With Database Component Ċ import Ġcom . mr kaz . tok oin . use case . reference . Reference UseCase Ċ import Ġio . mock k .* Ċ import Ġio . mock k . impl . annotations . Mock K Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġorg . junit . Assert .* Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Rule Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . junit . runners . JUnit 4 Ċ import Ġorg . k oin . core . context . start K oin Ċ Ċ @ RunWith ( JUnit 4 :: class ) Ċ class ĠMain VM Test Ġ: ĠBase UT Test () Ġ{ ĊĊĠĠĠ Ġ@ get : Rule ĊĠĠĠ Ġvar Ġinstant Executor Rule Ġ= ĠInstant Task Executor Rule () ĊĠĠĠ Ġlateinit Ġvar ĠviewModel : ĠMain VM ĊĠĠĠ Ġprivate Ġval Ġdispatcher Ġ= ĠDispatch ers . Un conf ined ĊĊĠĠĠ Ġ@ Mock K ĊĠĠĠ Ġlateinit Ġvar Ġreference UseCase : ĠReference UseCase ĊĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun Ġstart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . setUp () ĊĠĠĠĠĠĠĠ Ġ// Used Ġfor Ġinit iation Ġof ĠMock k ĊĠĠĠĠĠĠĠ ĠMock K Annotations . init ( this ) ĊĠĠĠĠĠĠĠ Ġ// Start ĠK oin Ġwith Ġrequired Ġdependencies ĊĠĠĠĠĠĠĠ Ġstart K oin Ġ{ Ġmodules ( configure Test App With Database Component ()) Ġ} ĊĠĠĠĠĠĠĠ ĠviewModel Ġ= ĠMain VM ( dispatcher , Ġdispatcher , Ġreference UseCase ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest _ main _ view _ model _ setup () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Assign ĊĠĠĠĠĠĠĠ ĠviewModel . setup Data () ĊĠĠĠĠĠĠĠ Ġ// Assert ĊĠĠĠĠĠĠĠ Ġco Verify Ġ{ Ġreference UseCase . insert ( any ()) Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( viewModel . loading LiveData . value , Ġfalse ) ĊĠĠĠ Ġ} Ċ Ċ }