为 FakeItEasy 存根调用事件

Invoke event for FakeItEasy stub

我将使用 FakeItEasy 生成的存根注入到我的 class。在某些时候,我的 class 订阅了依赖项的事件。我想在之后调用此事件作为我的测试方法的一部分,但它似乎不起作用:

var restApiManager = A.Fake<IRestApiManager>(); //IRestApiManager has Connected event
var target = new ViewModel(restApiManager);

target.Connect(); //some private method subscribes to RestApiManager.Connected

restApiManager.Connected(); //obviously not working

有没有办法从存根调用事件?

FakeItEasy 文档中的 Raising events 主题介绍了事件引发。

你会想像这样调用

restApiManager.Connected += Raise.With(arguments);

或某些变体,具体取决于事件提供给侦听器的参数。

如果您使用自定义委托定义了事件,则需要提供类型参数:

restApiManager.Connected += Raise.With<CustomEventHandler>(arguments);