Рассмотрим этот интерфейс:
public interface IFoo
{
event EventHandler SomethingHappened;
}
С Moq я делаю макет интерфейса, и теперь я хочу поднять событие:
var myMock = new Mock<IFoo>();
myMock.Raise(x => x.SomethingHappened += null, EventArgs.Empty );
Это работает отлично, но проблема в том, что подписчик ожидает, что sender будет чем-то (на самом деле IFoo, который вызывает событие), а не просто null.
Поэтому я хочу поднять событие следующим образом:
myMock.Raise(x => x.SomethingHappened += myMock.Object, EventArgs.Empty );
но компилятор этого не допустит - похоже, он принимает только null
в качестве отправителя. Почему это? Есть ли способ сделать то, что я действительно хочу?
SomethingHappened
? - person meJustAndrew   schedule 10.10.2016myMock.Raise(x=>x.SomethingHappened += null,myMock.Object, EventArgs.Empty );
.x=>x.SomethingHappened += null
, это сообщит Mock, какое событие вызывать, остальные аргументы, как и ожидалось - person Mrinal Kamboj   schedule 10.10.2016