//Синхронный вариант - всё заебись

interface Usecase {
  operator fun invoke()
}

class Interactor(private val usecase: Usecase) {
   fun callSomeShit(){
      Completable.fromAction { usecase }
      //хуйня для подписки и чтобы завершилось корректно
   }
}

fun test() {
   val usecase = mock()
   val interactor = Interactor(usecase)
   interactor.callSomeShit()
   verify(usecase).invoke()
}

//Асихронный вариант - тест падает
interface Usecase {
  operator suspend fun invoke()
}

class Interactor(private val usecase: Usecase) {
   fun callSomeShit(){
      rxCompletable { usecase() }
      //хуйня для подписки и чтобы завершилось корректно
   }
}


// Тест вылетает
fun test() = runTest {
   val usecase = mock()
   val interactor = Interactor(usecase)
   interactor.callSomeShit()
   verify(usecase).invoke()
}

Изменить пасту