package Ġapp . future d . ark ite kt . core . view model Ċ Ċ import Ġandroidx . arch . core . executor . testing . Instant Task Executor Rule Ċ import Ġapp . future d . ark ite kt . core . test . internal . Coroutine Scope Rule Ċ import Ġio . github . pl ast ix . rx schedul err ule . Rx Scheduler Rule Ċ import Ġkotlinx . coroutines . Experimental Cor outines Api Ċ import Ġorg . junit . Rule Ċ Ċ /** Ċ Ġ* ĠBase Ġclass Ġfor ĠViewModel Ġtesting . Ċ Ġ* Ċ Ġ* ĠSample Ġtest : Ċ Ġ* Ċ Ġ* Ġclass ĠSample ViewModel Test Ġ: ĠViewModel Test () Ġ{ Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġval Ġmock ViewState : ĠSample ViewState Ġ= Ġmock k () Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġlateinit Ġvar ĠviewModel : ĠSample ViewModel Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġ@ Before Ċ Ġ* ĠĠĠĠ Ġfun ĠsetUp () Ġ{ Ċ Ġ* ĠĠĠĠĠĠĠĠ ĠviewModel Ġ= Ġspy k ( Sample ViewModel ( mock ViewState ), Ġrecord Private Calls Ġ= Ġtrue ) Ċ Ġ* ĠĠĠĠ Ġ} Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġ@ Test Ċ Ġ* ĠĠĠĠ Ġfun Ġ` when Ġ... Ġthen Ġ... `() Ġ{ Ċ Ġ* ĠĠĠĠĠĠĠĠ Ġ// ĠG IV EN Ċ Ġ* ĠĠĠĠĠĠĠĠ Ġ... Ċ Ġ* Ċ Ġ* ĠĠĠĠĠĠĠĠ Ġ// ĠWHEN Ċ Ġ* ĠĠĠĠĠĠĠĠ Ġ... Ċ Ġ* Ċ Ġ* ĠĠĠĠĠĠĠĠ Ġ// ĠTHEN Ċ Ġ* ĠĠĠĠĠĠĠĠ Ġ... Ċ Ġ* ĠĠĠĠ Ġ} Ċ Ġ* Ġ} Ċ Ġ*/ Ċ open Ġclass ĠViewModel Test Ġ{ ĊĊĠĠĠ Ġ/* ĊĠĠĠ Ġclass ĠSample ViewModel Test Ġ: ĠViewModel Test () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġmock ViewState : ĠSample ViewState Ġ= Ġmock k () ĊĊĠĠĠĠĠĠĠ Ġlateinit Ġvar ĠviewModel : ĠSample ViewModel ĊĊĠĠĠĠĠĠĠ Ġ@ Before ĊĠĠĠĠĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel Ġ= Ġspy k ( Sample ViewModel ( mock ViewState ), Ġrecord Private Calls Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` when Ġ... Ġthen Ġ... `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠG IV EN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ... ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠWHEN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ... ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTHEN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ... ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġ*/ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSwap ĠRx Java Ġs chedulers Ġwith Ġthe Ġones Ġthat Ġare Ġexecuted Ġimmediately . ĊĠĠĠĠ Ġ* ĠIt Ġallows Ġto Ġwork Ġwith Ġthe ĠRx Java . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ get : Rule Ġvar Ġrx Java Rule Ġ= ĠRx Scheduler Rule () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSwap Ġbackground Ġandroid Ġexecutor Ġwith Ġthe Ġone Ġthat Ġexecutes Ġtask Ġsynchronous ly . ĊĠĠĠĠ Ġ* ĠIt Ġallows Ġto Ġwork Ġwith Ġthe Ġlive Ġdata . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ get : Rule Ġval Ġinstant Task Executor Rule Ġ= ĠInstant Task Executor Rule () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSwap Ġcoroutine Ġdispatcher Ġwith Ġthe Ġone Ġthat Ġis Ġexecuted Ġimmediately . ĊĠĠĠĠ Ġ* ĠIt Ġallows Ġto Ġwork Ġwith Ġthe Ġcor outines . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Experimental Cor outines Api ĊĠĠĠ Ġ@ get : Rule Ġvar Ġcoroutine Scope Rule Ġ= ĠCor outine Scope Rule () Ċ } Ċ