使用FakeItEasy进行伪造方法调用会引发事件吗?

Iga*_*nik 4 c# mocking fakeiteasy

我正在努力做一些事情:

A.CallTo(() => fakeTimer.Start()).Invokes(() => 
    fakeTimer.Elapsed += Raise.With<ElapsedEventArgs>(ElapsedEventArgs.Empty).Now);
Run Code Online (Sandbox Code Playgroud)

根据这个答案,它fakeTimer是一个假的ITimer,一个包装器接口.

显然这不起作用,因为我无法在Experssion Tree中进行任务.

我实际上要实现的是Start在调用方法时模拟提升计时器事件.这样我就可以断言Start确实发生了一次调用.

任何(替代)想法?

编辑我是个白痴,错是我自己的!我不小心添加了一个额外的A.CallTo,我不应该.我没有删除这个问题,而是继续授予PatrikHägne他的合法声誉:)

Pat*_*gne 8

我不太确定你要做什么,这是吗???

A.CallTo(() => fakeTimer.Start()).Invokes(() => 
    fakeTimer.Elapsed += Raise.With<ElapsedEventArgs>(ElapsedEventArgs.Empty).Now);
Run Code Online (Sandbox Code Playgroud)