Как проверить регистрацию событий в Rhino Mocks - PullRequest
2 голосов
/ 08 декабря 2010

Я пытаюсь написать тест 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 \ Мои документы \ MACS3 \ Prototype \ Web UI \ MACSUMACSUnitTests.cs 126 68 MACSUnitTests

Будут благодарны за любые идеи.

спасибо, Bill44077

1 Ответ

2 голосов
/ 10 декабря 2010

Ваше ограничение Arg<> должно быть типом события, а не типом аргументов события.Попробуйте:

Arg<EventHandler<GetCarriersCompletedEventArgs>>.Is.Anything
...