我是 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# 模拟/触发此类事件?