Ложный ответ DeferredAsyncTask с использованием MockK в Android - PullRequest
0 голосов
/ 07 января 2019

Я использую библиотеку MockK для модульного тестирования

Я хочу смоделировать ответ ниже метод

private fun removeDuplicatesResponse(bloodGlucoseDuplicateIds: List<String>, eventDuplicateIds: List<String>): Promise<Void, Throwable, Void> {
        val task = object : DeferredAsyncTask<Void, Void, Void>() {
            @Throws(Exception::class)
            override fun doInBackgroundSafe(vararg params: Void): Void? {
                return null
         }
      }
      task.executeOnExecutor(mExecutorService)
      return task.promise()
}

Я использую ниже каждого блока {}

every { mEventService.removeDuplicates(any(), any()).waitSafely() } answers { response() }

и метод ответа ниже для поддельного ответа

private fun response(): Promise<Void, Throwable, Void> {
    val task = object : DeferredAsyncTask<Void, Void, Void>() {
        @Throws(Exception::class)
        override fun doInBackgroundSafe(vararg params: Void): Void? {
            return null
        }
    }
    task.executeOnExecutor(mExecutorService)
    return task.promise()
}

но когда я попытался выполнить removeDuplicatesResponse (), он ничего не сделает и постоянно выполняет

Кто-нибудь есть идеи, пожалуйста, дайте мне знать, спасибо

...