我想创建一个集成测试,它将数据发送到服务器并从ClientWebSocket
获取响应。
[Fact]
public async Task WebSocket_Sending()
{
var client = new ClientWebSocket();
await client.ConnectAsync(Uri, CancellationToken.None);
var sending = client.SendAsync(data, WebSocketMessageType.Binary, CancellationToken.None);
var response = ????
Assert.AreEqual(response, "response");
}
但是Web Socket通信不是一个发送/接收机制。所以我找不到测试结果的方法。我该怎么做呢?
1条答案
按热度按时间8hhllhi21#
如果要测试服务器通过WebSocket连接对客户端请求的响应结果,可以使用
ClientWebSocket
类的ReceiveAsync
方法从服务器接收响应,然后Assert该响应与预期值匹配。您需要修改代码,如下所示:
您可能需要根据特定的使用情况调整缓冲区大小和编码类型。
或者,您可以使用模拟库或框架(如Moq)来模拟服务器对客户机请求的响应,并Assert客户机正在向模拟的服务器发送正确的请求数据。