【发布时间】:2022-06-10 23:19:55
【问题描述】:
我正在尝试测试我的代码,该代码使用 Keycloak 库从 Keycloak 获取所有用户详细信息。但我一直看到这个错误。谁能帮我解决这个问题?
测试代码
trait Setup {
val keycloak: Keycloak = mock[Keycloak]
val keycloakBuilder: KeycloakBuilder = mock[KeycloakBuilder]
val service = new NewUserService(conf)
val restEasy: ResteasyClientBuilder = mock[ResteasyClientBuilder]
val restEasyClient: ResteasyClient = mock[ResteasyClient]
val realmResource: RealmResource = mock[RealmResource]
val usersResource: UsersResource = mock[UsersResource]
}
"NewUserService#getAllUsers" should {
"return all users" in new Setup {
when(restEasy.build()) thenReturn restEasyClient
when(keycloakBuilder.build()) thenReturn keycloak
when(restEasy.build()) thenReturn restEasyClient
when(keycloak.realm(any[String])) thenReturn realmResource
when(realmResource.users()) thenReturn usersResource
when(usersResource.list()) thenReturn List(any[UserRepresentation]).asJava
whenReady(service.getAllUsers) { result =>
assert(result.isRight)
}
}
}
NewUserService.scala
val keycloakBuild = KeycloakBuilder
.builder()
.serverUrl(serverUrl)
.realm(realm)
.username(userName)
.password(password)
.clientId(clientId)
.clientSecret(clientSecret)
.resteasyClient(new ResteasyClientBuilder().connectionPoolSize(20).build())
.build()
val usersList = Future(Try(keycloakBuild.realm("knoldus").users().list()))
当我没有在 8080 端口启动我的 keycloak 服务器时,我收到连接被拒绝错误。当我在 8080 端口上启动它时,我看到用户未找到错误。请告诉我我做错了什么。
错误
Unable to get user details javax.ws.rs.ProcessingException: RESTEASY004655: Unable to invoke request: org.apache.http.conn.HttpHostConnectException: Connect to 127.0.0.1:8080 [/127.0.0.1] failed: Connection refused
Unable to get user details javax.ws.rs.ProcessingException: javax.ws.rs.NotFoundException: HTTP 404 Not Found
【问题讨论】:
-
你没有使用你的模拟。您必须将它们注入您的服务中。
-
问题依旧。
-
能否请您发布完整的代码示例
标签: java scala testing mockito keycloak