我有一个使用SignalR .Net客户端与服务器通信的服务,我想添加一些测试来检查客户端如何对连接问题作出反应(慢速互联网,间歇连接,根本没有连接) ,问题是我不知道如何模仿这个,以便我可以创建测试。
我是嘲笑的新人,所以我很难用这个。答案 0 :(得分:0)
您需要设计代码,以便只依赖IHubProxy接口
您可以查看我的.NET客户端库,了解如何解决它 https://github.com/AndersMalmgren/SignalR.EventAggregatorProxy/tree/master/SignalR.EventAggregatorProxy.Client.DotNet
在我的情况下,一些代码需要实际的具体HubProxy,所以我所做的是创建一个返回IHubProxy的工厂,这样我就可以做那些依赖于该工厂和其他工厂的具体类型的东西。代码依赖于对IHubProxy的依赖,这样我可以模拟具体的HubProxyFactory和HubProxy代码
在调整代码后,它只是一些模拟魔法的问题,在我的情况下
WhenCalling<IHubProxyFactory>(x => x.Create(Arg<string>.Is.Anything, Arg<Action<IHubConnection>>.Is.Anything, Arg<Action<IHubProxy>>.Is.Anything, Arg<Action>.Is.Anything, Arg<Action<Exception>>.Is.Anything, Arg<Action>.Is.Anything))
.Callback<string, Action<IHubConnection>, Action<IHubProxy>, Action, Action<Exception>, Action>((u, c, started, reconnected, f, connected) =>
{
started(proxy);
reconnectedCallback = reconnected;
return true;
})
.Return(proxy);