@Mock
示例代码
这里使用
@Mock注解,并设置provider参数
@POST(url = "friend/{friendId}")
@Mock(provider = FriendMockProvider::class)
suspend fun fetchFriend(
@Path friendId: Int,
): FriendDTO
定义
FriendMockProviderMock 提供者,必须是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