我试图按照以下方式做点什么:
A.CallTo(() => fakeTimer.Start()).Invokes(() =>
fakeTimer.Elapsed += Raise.With<ElapsedEventArgs>(ElapsedEventArgs.Empty).Now);
fakeTimer
假冒ITimer
,是this answer的封装界面。
<击> 显然这不起作用,因为我不能在Experssion树内做任务。
我实际想要实现的是在调用Start
方法时模拟提升计时器事件。通过这种方式,我可以断言对Start
的调用确实发生了。
任何(替代)想法?
击>
编辑我是个白痴,错误是我自己的!我不小心添加了额外的A.CallTo
,我不应该这样做。我没有删除这个问题,而是将其授予Patrik Hägne他的合法声誉:)
答案 0 :(得分:8)
我不确定你要做什么,是这个吗???
A.CallTo(() => fakeTimer.Start()).Invokes(() =>
fakeTimer.Elapsed += Raise.With<ElapsedEventArgs>(ElapsedEventArgs.Empty).Now);