我正在尝试编写一个Rhino Mocks测试来验证我是否已经注册了一个事件。这是我的测试:
var dataSvc = MockRepository.GenerateStub<IDataService>();
Search srch = new Search(dataSvc, vr);
dataSvc.GetCarriersCompleted += srch.OnCarrierDataReturned;
dataSvc.AssertWasCalled(x => x.GetCarriersCompleted += Arg<GetCarriersCompletedEventArgs>.Is.Anything);我的代码只是一个简单的事件注册表,如下所示:
public void GetCarrierList()
{
try
{
_dataService.GetCarriersCompleted += OnCarrierDataReturned; ; //hangedEventHandler(OnDataReturned);
_dataService.GetCarriersAsync(_param);
}
catch (Exception ex)
{
}
}
public void OnCarrierDataReturned(object sender, GetCarriersCompletedEventArgs e)
{
// get results
}我的数据服务如下所示:
void GetCarriersAsync(System.Collections.Generic.Dictionary<string, string> param);
event System.EventHandler<GetCarriersCompletedEventArgs> GetCarriersCompleted;我搞不懂Rhino Mocks在这次测试中需要什么。错误是:
错误7无法将类型'MACS2SLApp.MACSWcfServiceProxy.GetCarriersCompletedEventArgs‘隐式转换为'System.EventHandler’C:\Documents and Settings\600124238\My Documents\MACS3\Prototype\Web UI\MACSUnitTests\MACSUnitTests.cs 126 68 MACSUnitTests
任何想法都将不胜感激。
谢谢,Bill44077
发布于 2010-12-10 05:53:31
您的Arg<>约束需要是事件类型,而不是事件参数类型。尝试:
Arg<EventHandler<GetCarriersCompletedEventArgs>>.Is.Anythinghttps://stackoverflow.com/questions/4382252
复制相似问题