Mockito-Kotlin 模拟函数如何在没有类参数的情况下工作?

问题描述

Mockito 是一个模拟框架(味道真的很好)

mockito-kotlin 是一个小型库,提供了在 Kotlin 中使用 Mockito 的辅助函数

通常从 Kotlin 用 mockito 来模拟接口,我会写一些类似的东西

val mockBookService = Mockito.mock(BookService::class.java)

但是当使用 mockito-kotlin 时,我可以将其更改为

val mockBookService : BookService = mock()

所以我的问题是,在没有提供类参数的情况下,模拟函数如何知道要模拟哪个接口?

解决方法

可以在 mock() 中使用一种最通用的类​​型来使该声明通过类型检查:val mockBookService: BookService = mock<BookService>()

所以类型系统计算出来并使用它。