2

抽象クラスでイベントを発生させる方法を知っている人はいますか?

以下のテストは最後の行で失敗します。私が得る例外は次のとおりです。

System.InvalidOperationException : 無効な呼び出しです。最後の呼び出しが使用されているか、呼び出しが行われていません (仮想 (C#) / オーバーライド可能 (VB) メソッドを呼び出していることを確認してください)。

インターフェイスでイベントを発生させることはできますが、そのインターフェイスを実装する抽象クラスではできません。これは RhinoMocks の最新ビルド (3.6.0.0) を使用しています。

ありがとう、アレックス

    public abstract class SomeClass : SomeInterface
    {
        public event EventHandler SomeEvent;
    }

    public interface SomeInterface
    {
        event EventHandler SomeEvent;
    }

    [Test]
    public void Test_raising_event()
    {
        var someClass = MockRepository.GenerateMock<SomeClass>();
        var someInterface = MockRepository.GenerateMock<SomeInterface>();

        someInterface.Raise(x => x.SomeEvent += null, someClass, EventArgs.Empty);
        someClass.Raise(x => x.SomeEvent += null, someClass, EventArgs.Empty);
    }
4

1 に答える 1