首页 > 解决方案 > 如何使响应不可变

问题描述

从 api 调用我得到class ItemsResponse(val items: List<Items>) : PaginationResponse()where abstract class PaginationResponse(var pagination: Pagination = Pagination())。问题是, PageableResponse 和所有响应通常不应该是可变的。我使用这种可变性的唯一地方是在单元测试中模拟响应时,例如:

val itemsResponse = ItemsResponse(items = itemsList).apply {
    pagination = anyNeededPaginationState
}

我想做到不可变paginationPaginationResponse但我似乎无法获得如何模拟所需的响应。使用当前的模拟方法,我得到Val cannot be reassigned错误,我不知道如何在不重新分配的情况下模拟响应。

标签: androidpaginationresponse

解决方案


通过您的子类构造函数传递一个参数。

abstract class PaginationResponse(val pagination: Pagination = Pagination())

class ItemsResponse(val items: List<Items>, pagination = Pagination()) : PaginationResponse(pagination)

val itemsResponse = ItemsResponse(items = itemsList, pagination = anyNeededPaginationState)

推荐阅读