をイベントを発生させる:部品番号でMOQ:どのようにこのinterace考えてみnull以外の送信者と
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
を受け入れます。何故ですか?私が本当にしたいことをする方法はありますか?
あなたはどのようなエラーを取得しない形で標準の引数になります部品番号のフレームワーク、イベント/デリゲートを伝える
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に通知します。どのイベントが発生するのでしょうか、残りは期待通りの引数です –