为FakeItEasy存根调用事件

时间:2017-02-17 10:54:00

标签: .net fakeiteasy

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

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

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

1 个答案:

答案 0 :(得分:2)

FakeItEasy文档中的Raising events主题涵盖了事件提升。

你想要打这样的话

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

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

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

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