如何在WCF ServiceAuthorizationManager中模拟IContextChannel?

时间:2013-04-29 18:06:00

标签: c# wcf unit-testing moq

我正在尝试为自定义ServiceAuthorizationManager编写单元测试。对CheckAccessCore的调用将OperationContext作为参数。要实例化OperationContext,必须将IContextChannel传递给构造函数。使用MOQ,我已经声明了一个IContextChannel:

private OperationContext _context;
private Mock<IContextChannel> _contextChannelMock;

然后我尝试创建OperationContext:

_context = new OperationContext(_contextChannelMock.Object);

但这一行引发了一个例外:

  

结果消息:初始化方法   Urs.EnterpriseServices.Providers.Tests.UrsServiceAuthorizationManager_Tests.SetUp   扔了例外。 System.InvalidOperationException:   System.InvalidOperationException:传递给的IContextChannel无效   的OperationContext。必须是服务器调度通道或   客户代理渠道..

我如何模拟服务器调度通道?

1 个答案:

答案 0 :(得分:3)

你不能直接。看看WCFMock是否有帮助。