Выделенный объект с помощью метода Mockito Kotlin без обрушения

У меня есть следующий код:

@RunWith(MockitoJUnitRunner::class) class OnboardingViewModelTest { @Mock lateinit var authService : AuthService lateinit var internetProvider: InternetStatusProvider private lateinit var viewModel: OnboardingViewModel @Before fun setup() { internetProvider = mock() whenever(internetProvider.hasInternet()).thenReturn(true) } 

Конструктор InternetStatusProvider выглядит так:

InternetStatusProvider(context:Context)

Я получаю NullPointerException при обнулении метода internetProvider.hasInternet() потому что реализация этого метода использует context переданный в конструкторе, и вызывается реальный метод?

Что мне здесь не хватает? все дело в том, чтобы заглушить реальную реализацию этого метода?

Мокито не может заглушить окончательные методы. Если вы попытаетесь выполнить окончательный метод из изделенного экземпляра, будет выполнен реальный код. Поскольку функции Котлина final по умолчанию, вам нужно добавить open модификатор к функции.

В Mockito есть также инкубационная функция , которая позволяет насмехаться над финальными классами и методами, которые могут стоить взгляда.