Dans un test unitaire particulier, j'essaie d'élever un événement plusieurs fois, puis d'intensifier une valeur de propriété après que l'événement final a été déclenché. J'ai quelque chose commeMoq'ing la levée d'événements plusieurs fois
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);
}
Orientation fait seulement changé à l'est (comme je crois que l'événement ne se leva une fois). Est-ce que je fais quelque chose de mal? C'est la première fois que j'ai utilisé moq, donc il me manque probablement quelque chose.
Vive J
modifier ... le bon code j'aurais utilise
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);
}