考慮這個interace:起訂量:如何使用非空發件人引發事件
public interface IFoo
{
event EventHandler SomethingHappened;
}
隨着起訂量,我使接口的模擬,現在我想提出一個事件:
var myMock = new Mock<IFoo>();
myMock.Raise(x => x.SomethingHappened += null, EventArgs.Empty);
這可以很好地工作,但問題在於訂閱者希望發件人是事實(引發事件的IFoo),而不僅僅是空。
所以我想提出的事件是這樣的:
myMock.Raise(x => x.SomethingHappened += myMock.Object, EventArgs.Empty);
但是編譯器不會允許 - 它似乎只接受null
發件人。這是爲什麼?有沒有辦法做我真正想要的?
你什麼錯誤?還有什麼'SomethingHappened'的簽名? – meJustAndrew
嘗試 'myMock.Raise(x => x.SomethingHappened + = null,myMock.Object,EventArgs.Empty);'。 'x => x.SomethingHappened + = null',這會告訴Mock,哪個事件要提出,休息是如預期的參數 –