3

私は F# を初めて使用し、言語を学習するためにいくつかの演習を行っています。私が現在やろうとしているのは、カスタム Castle.Windsor 施設の単体テストを作成することです。カーネルをモックして、「ComponentRegistered」イベントを発生させようとしています。

私が使用しているツールは FsUnit/xUnit/Foq です。

私のコード:

let event = Event<_,_>()

let kernel = Mock<IKernel>()
    .SetupEvent(fun k -> <@ k.ComponentRegistered @>)
    .Publishes(event.Publish)
    .Create()

エラーメッセージ:

エラー 4 イベント 'ComponentRegistered' に標準外のタイプがあります。このイベントが別の CLI 言語で宣言されている場合、イベントの明示的な add_ComponentRegistered および remove_ComponentRegistered メソッドを使用して、このイベントにアクセスする必要がある場合があります。このイベントが F# で宣言されている場合は、イベントの型を 'IDelegateEvent< >' または 'IEvent< ,_>' のいずれかのインスタンス化にします。C:\Workbench\EvilDev\evildev.commons\Tests\EvilDev.Commons.Windsor.Tests\Auto Resolver Facility Specification.fs 35 53 EvilDev.Commons.Windsor.Tests

F# からこの種のイベントをモック/トリガーするにはどうすればよいですか?

4

1 に答える 1