我有以下使用 ktor 的 HttpClient 的函数。tokenService getAccessToken 函数也使用 ktor 客户端并获取令牌。
suspend fun addUser(user: User): User {
return client.post("${Base}api/v1/adduser") {
contentType(ContentType.Application.Json)
header("Authorization", "Bearer ${tokenService.getAccessToken()}")
body = user
}
}
这是我的简单测试
@Test
fun `should add user`() = runBlocking {
delay(3000)
val user = userService.addUser(User("john doe"))
user.firstName shouldBe "john doe"
}
现在测试由于延迟而通过,延迟为首先获取令牌提供了时间,但是如果我删除延迟,则调用 addUser 函数而不先获取令牌。我的问题是,有没有更好的方法来做到这一点,以避免增加测试延迟。我查看了 Kotlin Flows,但我不知道如何为我的场景实现它。如果你能指出我正确的方向,我将不胜感激。