【发布时间】:2010-03-11 16:33:34
【问题描述】:
我正在创建一个 DynamicMultiMock 如下:
this.serviceClient = this.mocks.DynamicMultiMock<ISlippyPlateProcedureService>(typeof(ICommunicationObject));
然后设置如下期望:
Expect.Call(((ICommunicationObject)this.serviceClient).State).Return(CommunicationState.Faulted);
当我执行测试时,Rhino Mocks 会报告:
重播期望:ICommunicationObject.get_State();
动态模拟:意外的方法调用被忽略:ICommunicationObject.get_State();
我是否正确设置了这个期望,还是有其他方法?
编辑以包含完整的测试代码:
Expect.Call(this.syncContextContainer.SynchronizationContext).Return(new SlippyPlateProcedureSynchronizationContextMock());
Expect.Call(this.clientFactory.CreateServiceClient(null)).IgnoreArguments().Return(this.serviceClient);
Expect.Call(((ICommunicationObject)this.serviceClient).State).Return(CommunicationState.Faulted);
Expect.Call(() => this.serviceClient.IsAlive());
this.mocks.ReplayAll();
SlippyPlateProcedureClient client = new SlippyPlateProcedureClient(
this.syncContextContainer, this.clientFactory, this.container);
PrivateObject privateObject = new PrivateObject(client);
SlippyPlateProcedureClient_Accessor target = new SlippyPlateProcedureClient_Accessor(privateObject);
target.CheckServerConnectivity();
this.mocks.VerifyAll();
谢谢
安德烈
【问题讨论】:
-
你能粘贴整个测试吗?乍一看,这条线看起来是正确的......
标签: c# .net unit-testing rhino-mocks