SignalR 的 AspNet Core 集成测试

Sat*_*ies 2 integration-testing signalr asp.net-core

有没有办法SignalR使用生成作为集成测试的TestServer一部分进行测试?

我对实例执行握手的所有重试均TestServer失败并出现异常

System.Net.Sockets.SocketException:无法建立连接,因为目标计算机主动拒绝它

Debug//运行完美ConsoleIIS

服务器代码

public void Configure(...)
{
    ...
    app.UseSignalR(router => router.MapHub<MockHub>("/ws"));
    ...
}
Run Code Online (Sandbox Code Playgroud)

测试代码

var server = factory.Server;
var connection = new HubConnectionBuilder()
    .WithUrl(server.BaseAddress)
    .Build();
await connection.StartAsync();
Run Code Online (Sandbox Code Playgroud)

小智 6

看起来TestServer需要您使用HttpMessageHandler它创建的,所以将您的代码更改为

builder.WithUrl(new Uri(server.BaseAddress, "ws"), o =>
{
    o.HttpMessageHandlerFactory = _ => server.CreateHandler();
})
Run Code Online (Sandbox Code Playgroud)