Ошибка событий интерфейса Mocking - PullRequest
0 голосов
/ 28 сентября 2010

Я пытаюсь смоделировать события интерфейса следующим образом:

[TestMethod]
public void NeedingDataFiresEvents()
{
    //Arrange
    var service = MockRepository.GenerateMock<IService>();
    service.Expect(i => i.GetValue()).Return(5);
    var view = MockRepository.GenerateMock<ILogView>();
    view.NeedData += null;
    LastCall.IgnoreArguments();
    var evt = LastCall.GetEventRaiser();

    var presenter = new LogPresenter(view, service);
    var args = new DataEventArgs();

    //Act
    evt.Raise(view, args);

    //Assert
    Assert.AreEqual(1, args.Results.Count());
}

Я получаю ошибку: System.InvalidOperationException: Неверный вызов, последний вызов был использован или не был сделан (убедитесь, что вы вызываете виртуальный (C #) / Overridable (VB) метод).

Я не уверен, почему ... что я делаю не так? Что бы я тоже применил виртуально, если бы я на самом деле не создавал представление ... Что-то в докладчике?

1 Ответ

0 голосов
/ 28 сентября 2010

ОК, понял, это был ответ, чтобы использовать экземпляр MockRepository ( пример, пример ниже взят оттуда ):

var fooDatabaseMock = new MockRepository();
var fooDatabase = fooDatabaseMock.DynamicMock<IFooDatabase>();
fooDatabase.FooDatabaseInsertEvent += null;

LastCall.IgnoreArguments();

var fooEventRaiser = LastCall.GetEventRaiser();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...