android - 如何使响应不可变
问题描述
从 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
}
我想做到不可变pagination
,PaginationResponse
但我似乎无法获得如何模拟所需的响应。使用当前的模拟方法,我得到Val cannot be reassigned
错误,我不知道如何在不重新分配的情况下模拟响应。
解决方案
通过您的子类构造函数传递一个参数。
abstract class PaginationResponse(val pagination: Pagination = Pagination())
class ItemsResponse(val items: List<Items>, pagination = Pagination()) : PaginationResponse(pagination)
val itemsResponse = ItemsResponse(items = itemsList, pagination = anyNeededPaginationState)
推荐阅读
- python - 如何在 Django 中找出 NoReverseMatch
- utf-8 - openssl req utf8 字符串
- ruby-on-rails - 为什么 GC stat minor_gc_count 会减少?
- python - 重新索引数据框的问题(处理分类数据)
- dynamics-crm - 如何通过 Web API 检索属性的显示名称?
- r - 绘制不同变量的点大小和颜色的问题(ggplot、geom_dot)
- java - Apache Camel Chronicle 组件 [已弃用]
- python - pandas - 根据变量将值添加到带有标题的列中到 mutltiindex(标题)
- json - 将动态 JSON 解析为 Oracle 表
- javascript - 是否可以使用 Testcafé 访问网站上定义的 af 功能?