我们正在使用 Scala 和 Websockets 开发一个应用程序。对于后者,我们使用Java-Websocket。应用程序本身运行良好,我们正在编写单元测试。
我们使用一个 WebSocket 类如下
class WebSocket(uri : URI) extends WebSocketClient(uri) {
connectBlocking()
var response = ""
def onOpen(handshakedata : ServerHandshake) {
println("onOpen")
}
def onMessage(message : String) {
println("Received: " + message)
response = message
}
def onClose(code : Int, reason : String, remote : Boolean) {
println("onClose")
}
def onError(ex : Exception) {
println("onError")
}
}
测试可能如下所示(伪代码)
websocketTest {
ws = new WebSocket("ws://example.org")
ws.send("foo")
res = ws.getResponse()
....
}
发送和接收数据有效。但是,问题在于连接到 websocket 会创建一个新线程,并且只有新线程才能response
使用onMessage
处理程序。使 websocket 实现单线程或连接两个线程以便我们可以访问测试用例中的响应的最佳方法是什么?或者还有其他更好的方法吗?最后,我们应该能够以某种方式测试 websocket 的响应。