【发布时间】:2014-05-01 15:41:27
【问题描述】:
我正在为我们的 SignalR 2.x 实现构建单元测试。 我们的实现利用访问存储在 Context 中的请求 cookie。
所以,为了构建我们的单元测试,我们必须创建一个模拟的 cookie 集合 并将其与模拟的请求对象相关联。
我在 SignalR 1.x 中看到了以下代码块:
const string connectionId = "1234";
const string hubName = "Chat";
var mockConnection = new Mock<IConnection>();
var mockUser = new Mock<IPrincipal>();
var mockCookies = new Mock<IRequestCookieCollection>();
var mockPipelineInvoker = new Mock<IHubPipelineInvoker>();
var mockRequest = new Mock<IRequest>();
mockRequest.Setup(r => r.User).Returns(mockUser.Object);
mockRequest.Setup(r => r.Cookies).Returns(mockCookies.Object);
StateChangeTracker tracker = new StateChangeTracker();
Clients = new HubConnectionContext(mockPipelineInvoker.Object, mockConnection.Object, hubName, connectionId, tracker);
Context = new HubCallerContext(mockRequest.Object, connectionId);
我在尝试创建模拟 cookie 集合时遇到了问题。 上面的 IRequestCookieCollection 是未定义的。
var mockCookies = new Mock<IRequestCookieCollection>();
这是否移动到 SignalR 库中的其他位置? 或者..,有没有其他方法可以做到这一点??
谢谢, 约翰B
【问题讨论】:
标签: unit-testing cookies signalr moq signalr-hub