LiveDataの中身までmockkでテストする
sealed class Status { object InProgress : Status() object Success : Status() data class Failure(val e: Throwable) : Status() } class Data { val status: LiveData<Status> }
↑みたいな構造のコードで、DataクラスのstatusがFailureになった際のeの型もちゃんとテストしたいみたいな場合、
val observer = mockk<Observer<Status>>(relaxed = true) val data = Data() data.observeForever(observer) // 何かしらのテストするためのAction verify { data.onChanged(match { it is Status.Failure && it.e is RuntimeException }) }
と match
を使えば良い