我正在尝试将多个测试客户端连接到一个服务器/筛选器。我试过了:
#[tokio::test]
async fn test_ws() {
let mut client1 = warp::test::ws()
.path("/api/ws/test")
.handshake(get_server())
.await
.expect("handshake");
let mut client2 = warp::test::ws()
.path("/api/ws/test")
.handshake(get_server())
.await
.expect("handshake");
get_server
函数返回一个我想要测试的BoxedFilter
。我试着储存和借用它,但没有用。这当前为每个客户端创建一个新的测试服务器。我希望客户端连接到同一个测试服务器。
任何warpFilter
都应该实现Clone
,其中包括BoxedFilter
。因此,您应该创建";服务器";一次,并为每个测试客户端克隆:
#[tokio::test]
async fn test_ws() {
let server = get_server();
let mut client1 = warp::test::ws()
.path("/api/ws/test")
.handshake(server.clone())
.await
.expect("handshake");
let mut client2 = warp::test::ws()
.path("/api/ws/test")
.handshake(server.clone())
.await
.expect("handshake");
// ... test away!
}