Java AKKAHTTPTestKit:如何编写AKKAHTTPWebSocket的测试用例
我正在用Java AKKAHTTPTestKit:如何编写AKKAHTTPWebSocket的测试用例,java,scala,websocket,junit4,akka-http,Java,Scala,Websocket,Junit4,Akka Http,我正在用Java编写一个Akka HTTP WebSocket路由。但无法找到用Java测试WebSocket的方法。akka没有可用的文件或样品。以下是我的java websocket代码: public final Route connectRoute(){ return path("connect", () -> handleWebSocketMessages(greetings())); } private static Flow<Message, Message,
Java
编写一个Akka HTTP WebSocket路由。但无法找到用Java测试WebSocket的方法。akka没有可用的文件或样品。以下是我的java websocket代码:
public final Route connectRoute(){
return path("connect", () -> handleWebSocketMessages(greetings()));
}
private static Flow<Message, Message, NotUsed> greetings(){
return Flow.<Message>create().collect(new JavaPartialFunction<Message, Message>() {
@Override
public Message apply(Message msg, boolean isCheck) throws Exception {
if(isCheck){
if(msg.isText()) return null;
else throw noMatch();
}else{
return handleTextMessage(msg.asTextMessage());
}
}
});
}
private static TextMessage handleTextMessage(TextMessage msg) {
if(msg.isStrict()){
return TextMessage.create("Hello "+msg.getStrictText());
}else{
return TextMessage.create(Source.single("Hello ").concat(msg.getStreamedText()));
}
}
public final Route connectRoute(){
返回路径(“连接”,()->handleWebSocketMessages(问候语());
}
私有静态流{
返回Flow.create().collect(新的JavaPartialFunction(){
@凌驾
公共消息应用(消息消息消息,布尔值isCheck)引发异常{
如果(isCheck){
if(msg.isText())返回null;
否则抛出noMatch();
}否则{
返回handleTextMessage(msg.asTextMessage());
}
}
});
}
专用静态TextMessage handleTextMessage(TextMessage消息){
if(msg.isStrict()){
返回TextMessage.create(“Hello”+msg.getStrictText());
}否则{
返回TextMessage.create(Source.single(“Hello”).concat(msg.getStreamedText());
}
}
Akka HTTP也有客户端web套接字库,但这不是测试WebSocket的方法。在scala中,如何使用Java创建测试用例?我也在努力解决这个问题。你发现了什么吗?嘿@DiegoMartinoia没有,仍然没有找到任何解决方案它可能不干净,但我只是放弃了,在测试中我实例化了整个服务器并绑定到机器的实际端口并使用它们。真正的端到端。