У меня возникают некоторые проблемы с имитацией функций обратного вызова с помощью Mockk.
Я пытаюсь смоделировать прослушиватель успешного выполнения задачи, который называется так:
collection
.add(Item())
.addOnSuccessListener {
update(collection.document(it.id))
}
Где подпись Java дляобратный вызов будет выглядеть так:
public interface OnSuccessListener<T> {
void onSuccess(T var1);
}
и подпись для addOnSuccessListener выглядит следующим образом
public abstract Task<DocumentReference> addOnSuccessListener(@NonNull OnSuccessListener<DocumentReference> var1);
Мой макет выглядит так:
every { documentReferenceTask.addOnSuccessListener(any()) } answers {
firstArg<(DocumentReference) -> Unit>().onSuccess(documentReference)
value
}
У меня такжепробовал:
every { documentReferenceTask.addOnSuccessListener(any()) } answers {
firstArg<OnSuccessListener<DocumentReference>>().invoke(documentReference)
value
}
В любом случае, я получаю исключение типа:
java.lang.ClassCastException: com.package.MyClass$addProduct$1 cannot be cast to kotlin.jvm.functions.Function1