嘲笑嵌套的服务器响应

我有以下Json模型:

/** * Json model of room response */ open class JsonRoom(val BookingData: JsonRoomBookingData, val GeneralData: JsonRoomGeneralData) /** * Json model of room booking data */ open class JsonRoomBookingData(val BookingId: Int, val BookingStatus: Int, val RoomId: Int, val RoomName: String, val TimeFrom: Date, val TimeTo: Date, val TimeFromUtc: Date, val TimeToUtc: Date, val Isrecurrence: Boolean, val RecurrenceID: Boolean, val BookingSource: Int, val IsMultiRoom: Boolean, val canBeStarted: Boolean, val canBeClosed: Boolean, val canBeExtended: Boolean) /** * Json model of room general data */ open class JsonRoomGeneralData(val CountryID: Int, val FloorID: Int, val FloorNum: Int, val LocationID: Int, val MeetingTitle: String, val NumAttending: Int) 

并在我的一个测试中的以下代码失败:

 // Arrange // Setup room mock val roomBookingDataMock = Mockito.mock(JsonRoomBookingData::class.java) val roomGeneralDataMock = Mockito.mock(JsonRoomGeneralData::class.java) val roomMock = Mockito.mock(JsonRoom::class.java) Mockito.`when`(roomMock.BookingData) .thenReturn(roomBookingDataMock) 

特别是在线Mockito.(roomMock.BookingData)有例外:

org.mockito.exceptions.misusing.MissingMethodInvocationException:when()需要一个必须是“模拟方法调用”的参数。 例如:when(mock.getArticles())。thenReturn(articles);

此外,这个错误可能会显示,因为:1.您存根:final / private / equals()/ hashCode()方法。 这些方法不能被扼杀/验证。 在非公共父类上声明的模仿方法不被支持。 在()里面的时候,你不要在模拟上调用方法,而要在其他对象上调用方法。

我错过了什么,这是一个Kotlin的问题,因为它包装了Java的getter / setters? 我是否需要使用一些我不知道的注释来注释我的Json模型属性?