我有以下数据类及其功能:
@JsonClass(generateAdapter = true)
data class AuthToken(
@Json(name = "token") val access: String,
@Json(name = "refreshToken") val refresh: String
) {
fun isAccessTokenValid(): Boolean = isTokenValid(access)
fun isRefreshTokenValid(): Boolean = isTokenValid(refresh)
private fun isTokenValid(token: String): Boolean {
return try {
val jwt = JWT(token)
val isExpired = jwt.isExpired(0)
Timber.d("Token ${if (isExpired) "expired" else "valid"} [${jwt.details()}]")
!isExpired
} catch (e: DecodeException) {
Timber.w(e, "Invalid auth token.")
false
}
}
}
在我的单元测试中,我有以下几行:
val authToken = AuthToken("accessToken", "refreshToken")
every { authToken.isAccessTokenValid() } returns true
every { authToken.isRefreshTokenValid() } returns false
但是我收到以下错误:
每个 { ... } 块内缺少模拟调用:确保对象 块内是一个模拟。
上线
val jwt = JWT(token)
当我尝试模拟调用它的外部函数时,为什么
isTokenValid
会运行?
知道如何解决吗?
要存根对象的方法,您必须将其创建为
mockk
:
val authToken = mockk<AuthToken>()