Geocoder Mockk «Не удалось сопоставить насмешливую подпись для»Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Geocoder Mockk «Не удалось сопоставить насмешливую подпись для»

Сообщение Anonymous »

Я пытаюсь создать несколько модульных тестов и имитировать API геокодера в Android.
У меня есть следующая функция, на основе которой я пытаюсь создать модульный тест:

Код: Выделить всё

@RequiresApi(Build.VERSION_CODES.TIRAMISU)
private suspend fun Geocoder.getFromLocationApi33(
latitude: Double,
longitude: Double
) = suspendCancellableCoroutine { continuation ->
this.getFromLocation(latitude, longitude, MAX_RESULTS) { addresses ->
continuation.resumeWith(Result.success(addresses.firstOrNull()))
}
}
И мой модульный тест выглядит так:

Код: Выделить всё

val geocoder = mockk()
val addressSlot = slot Unit>()
coEvery {
geocoder.getFromLocation(0.0, 0.0, 1, capture(addressSlot))
}.answers {
addressSlot.captured.invoke(mutableListOf())
}
Но в журналах для строк coEvery появляется следующая ошибка:

Не удалось сопоставить макет подпись для SignedCall(retValue=,
isRetValueMock=true, retType=class kotlin.Unit, self=Geocoder(#5),
method=getFromLocation(Double, Double, Int, GeocodeListener),
args=[0.0, 0.0, 1,
com.weatherxm.util.GeocoderCompatTest$1$2$2$3$1$1$$Lambda$314/0x000000010059eab8@73c3ceb5],
invoctionStr=Geocoder(#5).getFromLocation (0.0, 0.0, 1,
com.weatherxm.util.GeocoderCompatTest$1$2$2$3$1$1$$Lambda$314/0x000000010059eab8@73c3ceb5))
левые сопоставления: [slotCapture()]

Есть идеи, как решить эту проблему?

Подробнее здесь: https://stackoverflow.com/questions/790 ... nature-for
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»