Mockito对象与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)

由于该方法的实现使用在构造函数context传递的context并调用真正的方法,因此在为internetProvider.hasInternet()方法存根时存在NullPointerException异常?

我在这里错过了什么? 整个问题的关键是要把这个方法真正的实现吗?

Mockito不能残缺最后的方法。 如果您尝试从模拟实例执行最后的方法,那么将会执行真实的代码。 由于Kotlin的函数默认是final的,所以你必须在函数中添加open修饰符。

在Mockito中也有一个孵化功能 , 允许嘲笑最终的类和方法,这可能值得一看。