In un particolare test di unità sto provando a generare un evento più volte e quindi a rendere più preciso un valore di proprietà dopo che l'evento finale è stato generato. Ho qualcosa di simileMoq'ing il sollevamento di eventi più volte
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);
}
Orientamento effettivamente cambiato solo est (come credo l'evento sta ottenendo soltanto sollevato una volta). Sto facendo qualcosa di sbagliato? Questa è la prima volta che ho usato moq quindi probabilmente mi manchi qualcosa.
Acclamazioni J
edit ... il codice corretto dovrei Sono stato con
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);
}