В Котлине:
recyclerView.viewTreeObserver.addOnGlobalLayoutListener { scrollToEnd() }
private fun scrollToEnd() =
(adapter.itemCount - 1).takeIf { it > 0 }?.let(recyclerView::smoothScrollToPosition)
toThrow
нельзя использовать для шпионов. Вы можете использовать шпионов, чтобы смоделировать поведение или использовать фактическое поведение с callThrough
, а затем убедиться, что метод был вызван с определенными параметрами. Но у шпиона не будет информации о полученном результате (значение или ошибка), поэтому вы не можете установить на него ожидания.
Если вы хотите проверить поведение onDocumentDeleted
, вы должны либо проверить его косвенно, наблюдая за эффектами метода. В вашем случае (с @CatchAndLogAnyException
), кажется, что запись в журнал !? Таким образом, вы можете следить за журналом и ожидать, что он будет вызван с сообщением об ошибке. Или же вы можете протестировать метод напрямую, сделав его открытым