Ale*_*xTa 2 mockito kotlin mockito-kotlin
我正在尝试对使用以下服务的类进行单元测试:
parserService.parseJsonStringToModel(json: String, adapterClass: Class<T>): T?
Run Code Online (Sandbox Code Playgroud)
我的第一个方法是用于ArgumentMatchers实现单元测试,如下所示:
Mockito.`when`(parserService.parseJsonStringToModel(ArgumentMatchers.any(), ArgumentMatchers.any<CreateAccountRequest>().javaClass)).thenReturn(null)
Run Code Online (Sandbox Code Playgroud)
由于在 Kotlin 中ArgumentMatchers.any()返回null,因此会生成NullPointerException不可为 null 的类型。所以我尝试使用Mockito-Kotlin库来避免这个问题。该方法如下所示:
whenever(parserService.parseJsonStringToModel(any(), any<CreateAccountRequest>().javaClass)).thenReturn(null)
Run Code Online (Sandbox Code Playgroud)
使用的库解决了第一个参数的问题,但仍然产生NullPointerException传递的第二个参数。
那么,如何创建ArgumentMatchersforClass<T>类型参数呢?
您可以直接为以下内容创建一个匹配器Class<CreateAccountRequest>:
whenever(
parserService.parseJsonStringToModel(
any(),
any<Class<CreateAccountRequest>>()
)
).thenReturn(null)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1991 次 |
| 最近记录: |