基本的なアプリケーションのアーキテクチャ Official 2.5 WS Test Documentationを見ると、同期的な応答しか得られないという話があります。私がテストしたい場合はどうなりますPlayでfire-and-forget WSClientリクエストをテストする方法
object GitHubClientSpec extends Specification with NoTimeConversions {
"GitHubClient" should {
"get all repositories" in {
Server.withRouter() {
case GET(p"/repositories") => Action {
Results.Ok(Json.arr(Json.obj("full_name" -> "octocat/Hello-World")))
}
} { implicit port =>
WsTestClient.withClient { client =>
val result = Await.result(
new GitHubClient(client, "").repositories(), 10.seconds)
result must_== Seq("octocat/Hello-World")
}
}
}
}
}
は私のアーキテクチャで4、5、および6ステップ? WSTestClientを使用できますか?ドキュメントはここに関連するコードだそれ
の希薄なように思わ私は
def createGraphvizDotStringAndReturnImgurLink = Action.async{ implicit request =>
import SlashCommandIn._
slackForm.bindFromRequest.fold(
formWithErrors => {
Logger.warn(s"Incorrect Form Format: ${request.body.asText.getOrElse("<No Body>")}}")
Future{Ok(Json.toJson(SlackPrivateUserResponse(BAD_FORM_DATA_MSG)))}
},
goodValidatedSlackRequest => {
if(goodValidatedSlackRequest.token.contentEquals(SLACK_EXPECTED_TOKEN)) {
Logger.debug("Validation Succeeded")
_doImageCreationAndGetImgurLink(goodValidatedSlackRequest) // Steps, 4, 5, and 6
Future{Ok(Json.toJson(SlackPrivateUserResponse(PROCESSING_MSG + "\n>>>" +
goodValidatedSlackRequest.text)))}
}else {
Future{Ok(Json.toJson(SlackPrivateUserResponse(BAD_TOKEN_MSG)))}
}
}
)
}