java – 在PlayFramework中测试WebSocket

前端之家收集整理的这篇文章主要介绍了java – 在PlayFramework中测试WebSocket前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的Play应用程序中有一个WebSocket,我想为其编写一个测试,但是我找不到如何编写这样一个测试的例子.我在 play-framework Google群组中发现了一个讨论,但最近没有任何活动.

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

解决方法

您可以检索底层Iteratee,枚举器并直接测试它们.这样就不需要使用浏览器了.你需要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)
    }
  }
}
原文链接:https://www.f2er.com/java/124722.html

猜你在找的Java相关文章