"event Action<>" 可以在单元测试中使用 fakeiteasy 使用 3 个类型参数调用吗

Can "event Action<>" be invoked with 3 type arguments using fakeiteasy in unit tests

我在互联网上看了很多,但不知何故我没有掌握解决问题的概念。应该没那么复杂。

我有一个 SUT(被测系统),它有一个事件操作,如:

    event Action<ISomeInterface, bool, string> DownloadFinished;

现在我想使用假对象(使用 fakeiteasy)引发此事件,例如:

fakeObject.DownloadFinished  = Raise.With<ISomeInterface, bool, string>();

但是上面一行显示错误,因为它说“Raise cannot take 3 arguments”。有人可以推荐如何解决这个问题。

根据我对 the docs 的阅读,如果您使用的是非 EventHandler 事件,则需要使用 Raise.FreeForm.With:

fakeObject.DownloadFinished += Raise.FreeForm.With(implementerOfSomeInterface, false, string.Empty);

或类似