이 interace 고려 어떻게 널이 아닌 송신자와 이벤트를 발생하는 방법 : MOQ와MOQ는 :
public interface IFoo
{
event EventHandler SomethingHappened;
}
을, 나는 인터페이스의 모의을하고, 지금은 이벤트 인상 할 :
var myMock = new Mock<IFoo>();
myMock.Raise(x => x.SomethingHappened += null, EventArgs.Empty);
을
이것은 완벽하게 작동하지만 구독자가 보낸 사람 (실제로 이벤트를 발생시키는 IFoo)이 아니라 null이 될 것으로 예상한다는 점이 문제입니다.
그러므로 나는이 같은 이벤트를 마련하려는 :
myMock.Raise(x => x.SomethingHappened += myMock.Object, EventArgs.Empty);
하지만 컴파일러는 그것을 허용하지 않습니다 - 그것은 겉으로 만 보낸 사람으로 null
받아들입니다. 왜 그런가요? 내가 정말로 원하는 것을 할 수있는 방법이 있습니까?
당신이 어떤 에러가 발생합니까 형태로 표준 인수 될 MOQ 프레임 워크, 이벤트/대리자를 말할
myMock.Raise(x=>x.SomethingHappened += null,myMock.Object, EventArgs.Empty);
x.SomethingHappened += null
, ? 또한 SomethingHappened의 서명은 무엇입니까? – meJustAndrew시도해보십시오. 'myMock.Raise (x => x.SomethingHappened + = null, myMock.Object, EventArgs.Empty);'. 'x => x.SomethingHappened + = null', Mock에게 어떤 이벤트를 올릴지, 나머지는 예상대로 인수입니다. –