Я пытаюсь проверить обратный вызов слушателя, который запускается внутри AsyncTask
,
Класс слушателя:
interface LoaderListener {
fun onByteSuccess(..., ..., ...)
fun onByteFailure(..., ...)
}
Класс, содержащий AsyncTask:
class Loader {
override fun handleStreamTask(){
InputStreamHandlingTask(..., ...).execute(byteArray)
}
private inner class InputStreamHandlingTask constructor(
internal var ...,
internal var ...
) : AsyncTask<ByteArray, Void, ByteArray>() {
override fun doInBackground(vararg params: ByteArray): ByteArray? {
val response = params[0]
.....
return response
}
override fun onPostExecute(byteArray: ByteArray?) {
if (byteArray != null) {
listener.onByteSuccess(..., ..., ...)
} else {
listener.onByteFailure(..., ...)
}
}
}
}
Тест, который я пытаюсь сделать:
@Test
fun testIfListenerCalled(){
val loader: Loader = mock()
val loaderListener: LoaderListener = mock()
loader.handleStreamTask()
verify(loaderListener).onByteSuccess(..., ..., ...)
}
Ошибка, с которой я сейчас сталкиваюсь:
Исключение в потоке ... Java.lang.RuntimeException: метод выполнить в android.os.AsyncTask не осмеивается.Подробнее см. http://g.co/androidstudio/not-mocked.на android.os.AsyncTask.execute (AsyncTask.java)