我有以下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()需要一个必须是'对mock进行方法调用'的参数。 例如: 当(mock.getArticles())thenReturn(文章);
此外,此错误可能会显示,因为: 1.你存在以下任何一个:final / private / equals()/ hashCode()方法。 这些方法无法进行存根/验证。 不支持在非公共父类上声明的模拟方法。 2.在()内部,你不是在模拟上调用方法,而是在其他对象上调用方法。
我错过了什么,这是一个Kotlin问题,因为它包装了Java的getter / setter?我是否需要使用一些我不知道的注释来注释我的Json模型属性?