Trong một bài kiểm tra đơn vị cụ thể, tôi đang cố gắng nâng cao một sự kiện nhiều lần và sau đó để xác định giá trị thuộc tính sau khi sự kiện cuối cùng được nâng lên. Tôi có một cái gì đó giống nhưMoq'ing việc tăng sự kiện nhiều lần
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);
}
Chỉ thực sự thay đổi về hướng đông (như tôi tin rằng sự kiện chỉ được nâng lên một lần). Tôi có làm điều gì sai? Đây là lần đầu tiên tôi đã sử dụng moq vì vậy tôi có thể thiếu một cái gì đó.
Cheers J
chỉnh sửa ... mã đúng tôi nên đã được sử dụng
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);
}