gpt4 book ai didi

java - 在 PlayFramework 中测试 WebSocket

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:59:22 24 4
gpt4 key购买 nike

我的 Play 应用程序中有一个 WebSocket,我想为它编写一个测试,但我找不到任何有关如何编写此类测试的示例。我在 play-framework 中找到了一个讨论Google 群组,但最近没有任何 Activity 。

那么,关于如何在 Java 测试中测试 WebSocket 有什么想法吗?

最佳答案

您可以检索底层的 Iteratee、Enumerator 并直接测试它们。这样你就不需要使用浏览器了。不过,您需要 akka-testkit 来应对迭代对象的异步性质。

一个 Scala 例子:

object WebSocket extends Controller {
def websocket = WebSocket.async[JsValue] { request =>
Future.successful(Iteratee.ignore[JsValue] -> Enumerator.apply[JsValue](Json.obj("type" -> "error")))
}
}

class WebSocketSpec extends PlaySpecification {
"WebSocket" should {
"respond with error packet" in new WithApplication {
val request = FakeRequest()

var message: JsValue = null
val iteratee = Iteratee.foreach[JsValue](chunk => message = chunk)(Akka.system.dispatcher)

Controller.websocket().f(request)(Enumerator.empty[JsValue],iteratee)

TestKit.awaitCond(message == Json.obj("type" -> "error"), 1 second)
}
}
}

关于java - 在 PlayFramework 中测试 WebSocket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16354354/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com