如何设置Moq以便我可以模拟到客户端(浏览器)的SignalR调用?

时间:2014-05-02 20:55:00

标签: signalr moq signalr-hub signalr.client

我正在为SignalR 2.x应用程序构建一个UnitTest框架。 我正在使用Moq来模拟所需的框架。 我看到如何使用Moq与中心/服务器端的调用进行交互。 关于我如何在客户端这样做,我有点困惑。 如何设置Moq以便我可以模拟到客户端(浏览器)的SignalR调用?

我见过两种模拟客户端的方法: 的 1

var mockClients = new Mock<IHubCallerConnectionContext>();
Clients = mockClients.Object;

2

const string connectionId = "1234";
const string hubName = "SomeHub";
StateChangeTracker tracker = new StateChangeTracker();
var mockPipelineInvoker = new Mock<IHubPipelineInvoker>(); 

var mockConnection = new Mock<IConnection>();
Clients = new HubConnectionContext(mockPipelineInvoker.Object, mockConnection.Object, hubName, connectionId, tracker);

因此,请考虑从集线器到客户端的以下呼叫:

ActiveClients.Group(groupName).onNotifyClient(hubMessage);

我是新手使用Moq并且仍然可以在运行中搞清楚。 信息/建议将不胜感激。

谢谢, JohnB

1 个答案:

答案 0 :(得分:0)

SignalR团队有关于此的教程,请参阅here