-1
我試圖測試中使用的Android中的Mockito改造科特林的API客戶端類,它看起來像這樣:使用Mockito,我如何用val接口字段聲明監聽Kotlin類?
class SomeApiClient : SomeApi {
private val service: SomeApiService
constructor(service: SomeApiService) {
this.service = service
}
}
它實現SomeApi
接口,幷包含一個改裝服務接口作爲構造函數的參數。
當spy
ING類與的Mockito,類需要具有無參數的構造函數,否則你的測試將失敗,MockitoException
:
org.mockito.exceptions.base.MockitoException:無法初始化@Spy註釋字段'SomeClass'。 請確保類型'SomeClass'具有無參數構造函數。
如果類具有包含默認值的所有參數的構造函數,那麼Kotlin爲其生成無參數構造函數。但是,如果類接收到interface
作爲構造函數參數(並且具有與val
聲明相對應的字段),那麼如何應用默認值或聲明空構造函數呢?
謝謝!