package Ġorg . inter view . jor ge Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroidx . test . core . app . Activity Scenario Ċ import Ġdagger . Bind s Instance Ċ import Ġdagger . Component Ċ import Ġorg . inter view . jor ge . playback . server . Playback Service Ċ import Ġorg . junit . After Ċ import Ġorg . junit . Assert . assertTrue Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . mockito . Mockito . mock Ċ import Ġorg . mockito . Mockito . mock ing Details Ċ Ċ internal Ġclass ĠDefault Activity Test Ġ{ ĊĠ Ġ/** ĊĠĠ Ġ* ĠThis Ġcould Ġbe Ġlateinit , Ġbut Ġif Ġa Ġtest Ġcrashes Ġbefore Ġinitializing Ġthe Ġfield , Ġthe Ġexception ĊĠĠ Ġ* Ġreported Ġwill Ġbe Ġthe Ġone Ġfrom Ġtrying Ġto Ġcall Ġclose () Ġon Ġthe Ġun initialized Ġfield Ġand Ġnot Ġthe ĊĠĠ Ġ* Ġactual Ġcause Ġof Ġthe Ġissue . ĠMaking Ġthe Ġfield Ġnullable Ġinstead Ġtack les Ġthis Ġproblem ĊĠĠ Ġ*/ ĊĠ Ġprivate Ġvar Ġactivity Scenario : ĠActivity Scenario < Default Activity >? Ġ= Ġnull ĊĠ Ġprivate Ġlateinit Ġvar Ġdefault Component F : Ġ() Ġ-> ĠDefault Activity Component ĊĠ Ġprivate Ġval Ġstarts Foreground Service Ġ= Ġmock ( Starts Foreground Service :: class . java ) ĊĊĠ Ġ@ Before ĊĠ Ġfun ĠbeforeEach () Ġ{ ĊĠĠĠ Ġdefault Component F Ġ= ĠDefault Activity . component F ĊĠ Ġ} ĊĊĠ Ġ@ After ĊĠ Ġfun ĠafterEach () Ġ{ ĊĠĠĠ ĠDefault Activity . component F Ġ= Ġdefault Component F ĊĠĠĠ Ġactivity Scenario ?. close () ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġstarts _ playback Service () Ġ{ ĊĠĠĠ ĠDefault Activity . component F Ġ= Ġ{ ĊĠĠĠĠĠ ĠD agger Default Activity Test _ Replacement Default Activity Component . factory () ĊĠĠĠĠĠĠĠ Ġ. create ( starts Foreground Service ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġactivity Scenario Ġ= ĠActivity Scenario . launch ( Default Activity :: class . java ) ĊĊĠĠĠ Ġ// Ġhttps :// stackoverflow . com / questions / 5 2 3 8 9 7 2 7 / mock itos - arg that - return ing - null - when - in - kotlin ĊĠĠĠ Ġ// ĠP ret tier Ġresolution Ġpossible Ġ( e . g . Ġwith Ġother Ġlibraries ), Ġbut Ġnot Ġthe Ġfocus ĊĠĠĠ Ġval Ġinvocation Ġ= Ġmock ing Details ( starts Foreground Service ). inv ocations . single Ġ{ ĊĠĠĠĠĠ Ġit . method . name . content Equals (" invoke ") ĊĠĠĠ Ġ} ĊĠĠĠ ĠassertTrue ( invocation . arguments [ 0 ] Ġ!= Ġnull ) ĊĠĠĠ ĠassertTrue ( ĊĠĠĠĠĠ Ġ( invocation . arguments [ 1 ] Ġas ĠIntent ). component !!. className . content Equals ( ĊĠĠĠĠĠĠĠ ĠPlay back Service :: class . java . name ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġ@ Component ĊĠ Ġinterface ĠRe placement Default Activity Component Ġ: ĠDefault Activity Component Ġ{ ĊĠĠĠ Ġ@ Component . Factory ĊĠĠĠ Ġinterface ĠFactory Ġ{ ĊĠĠĠĠĠ Ġfun Ġcreate ( ĊĠĠĠĠĠĠĠ Ġ@ Bind s Instance Ġstarts Foreground Service : ĠStarts Foreground Service ĊĠĠĠĠĠ Ġ): ĠRe placement Default Activity Component ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ