@Mock
示例代码
这里使用
@Mock
注解,并设置provider
参数
@POST(url = "friend/{friendId}")
@Mock(provider = FriendMockProvider::class)
suspend fun fetchFriend(
@Path friendId: Int,
): FriendDTO
定义
FriendMockProvider
Mock 提供者,必须是object
类型MockProvider<R>
的泛型必须和请求函数的返回类型一致,如果返回类型是Result<T>
则需要和类型T
保持一致
object FriendMockProvider : MockProvider<FriendDTO> {
override fun provide(): FriendDTO {
return TODO()
}
}
生成实现
这里成功的将
@Mock
注解中设置的FriendMockProvider::class
解析为object
并将它赋值给了mockProvider
参数
override suspend fun fetchFriend(friendId: Int): FriendDTO = this.config.mockClient.request(
method = HttpMethod.Post,
mockProvider = FriendMockProvider,
) {
this.url("friend/${friendId}")
this.paths {
this.append("friendId", friendId)
}
}
注意事项
目前暂不支持在
provide()
函数中获取请求参数,计划在未来版本中支持,但目前还未设计如何实现此功能
Last modified: 30 July 2025