asp.net-core - SignalR 的 AspNet 核心集成测试
问题描述
是否可以SignalR
使用TestServer
作为集成测试的一部分生成的测试(https://docs.microsoft.com/en-us/aspnet/core/test/integration-tests view=aspnetcore-2.1)?
TestServer
我所有的重试都未能与实例握手失败,并出现异常:System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it
运行Debug
//Console
完美IIS
运行
服务器代码
public void Configure(...)
{
...
app.UseSignalR(router => router.MapHub<MockHub>("/ws"));
...
}
测试代码
...
var server = factory.Server;
var connection = new HubConnectionBuilder()
.WithUrl(server.BaseAddress)
.Build();
await connection.StartAsync();
解决方案
看起来TestServer
需要您使用它HttpMessageHandler
创建的,所以将您的代码更改为
.WithUrl(new Uri(server.BaseAddress, "ws"), o =>
{
o.HttpMessageHandlerFactory = _ => server.CreateHandler();
})
推荐阅读
- google-app-engine - App Engine任务队列创建一批队列项目并在go lang中每10秒执行一次
- domain-driven-design - 根据依赖查找聚合 id
- javascript - react-paginate Css 没有得到反映
- json - 如何在 Swift 中的 Alamofire 中发送 body 参数?
- javascript - 保存并填充节点 js
- python - PyTorch:批量外加法
- ios - 输出不是我所期望的
- laravel - Laravel 在存储路径中制作目录返回 TRUE 但我没有目录
- offline - Ray - RLlib - 自定义环境错误 - 连续动作空间 - DDPG - 离线体验培训?
- ios - 如何在表格视图单元格内的 TextView 中使用动态类型