我们正在开发一个带有Scala和Websockets的应用程序。对于后者,我们使用Java-Websocket。应用程序本身很好,我们正在编写单元测试。用于测试的单线程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会创建一个新线程,只有新线程才能使用onMessage处理程序访问response。使websocket实现单线程或连接两个线程以便我们可以访问测试用例中的响应的最佳方法是什么?还是有另一种更好的方法呢?最后,我们应该能够以某种方式测试WebSocket的响应。
2013-04-26
str