En una prueba de unidad particular, estoy tratando de plantear un evento varias veces y luego de modificar el valor de una propiedad después de que se haya producido el evento final. Tengo algo así comoMoq'ing la elevación de eventos varias veces
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);
}
Orientación realidad sólo cambió a este (como creo que el evento sólo se está levantado una vez). ¿Estoy haciendo algo mal? Esta es la primera vez que uso moq, así que probablemente me esté perdiendo algo.
Saludos J
editar el código correcto ... yo debería haber estado usando
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);
}