В конкретном модульном тесте я пытаюсь поднять событие несколько раз, а затем для подтверждения значения свойства после того, как окончательное событие было поднято. У меня есть что-то вродеМоментальное увеличение событий несколько раз
public void TurnRight()
{
var mockFoo = new Mock<IFoo>();
SomeService someService= new SomeService();
someService.Foo= mockFoo.Object;
mockFoo.Raise(foo=> foo.TurnedRight += null, EventArgs.Empty);
mockFoo.Raise(foo=> foo.TurnedRight += null, EventArgs.Empty);
mockFoo.Raise(foo=> foo.TurnedRight += null, EventArgs.Empty);
mockFoo.VerifySet(foo=> foo.Orientation = Orientation.West);
}
Ориентация на самом деле изменилась только на восток (как я считаю, что событие только получение поднят один раз). Я делаю что-то неправильно? Это первый раз, когда я использовал moq, поэтому я, вероятно, что-то пропустил.
Приветствие J
редактировать ... правильный код я должен был с помощью
public void TurnRight()
{
var mockFoo = new Mock<IFoo>();
SomeService someService= new SomeService();
someService.Foo= mockFoo.Object;
mockFoo.SetupProperty(foo=> foo.Orientation);
mockFoo.Raise(foo=> foo.TurnedRight += null, EventArgs.Empty);
mockFoo.Raise(foo=> foo.TurnedRight += null, EventArgs.Empty);
mockFoo.Raise(foo=> foo.TurnedRight += null, EventArgs.Empty);
Assert.AreEqual(mockFoo.Object.Orientation, Orientation.South);
}