我正在使用 mockito-kotlin。这是我的方法mergeList,它使用 DTO 作为输入/输出参数
data class UpdateResultDto(
var sendToSd: Boolean = false,
var status: ResultStatus = ResultStatus.SUCCESS,
var errors: MutableList<UpdateError> = mutableListOf()
)
fun <T : Object> mergeList(
objects: List<T>,
result: UpdateResultDto,
error: UpdateErrorInterface
) = crudList(objects, result, error) { entityManager.merge(it) }
fun <T> crudList(
objects: List<T>?,
result: UpdateResultDto,
error: UpdateErrorInterface,
action: (obj: T) -> Unit
) = persistence.runInTransaction {
objects?.forEach {
try {
action(it)
} catch (e: Exception) {
result.saveError(error)
}
}
}
crudList 方法执行一个在 mergeList 中传递的操作,如果发生异常,它将错误状态保存到 result.status 字段和 errorsList 中。
我需要为代码编写一个单元测试,它调用 mergeList 方法并涵盖它返回错误状态时的情况。我正在尝试编写如下所示的代码,但出现错误“Expected a value of type Any!”
whenever(contactDao.mergeList<Contacts>(any(), any<UpdateResultDto>(), any())).then { invocation ->
invocation.getArgument(1, UpdateResultDto::class.java)?.status = ResultStatus.ERROR
}
如何设置第二个参数的状态字段值?
我知道,该方法可以重构为返回 resultDto,但是,我想知道它是如何完成的。