我正在尝试完成以下类似内容的操作:
显然这不起作用,因为我不能在表达式树内部进行赋值。
实际上我想做的是在调用
有任何(替代)想法吗? 编辑 我是个傻瓜,错是我的!我不小心添加了一个额外的
A.CallTo(() => fakeTimer.Start()).Invokes(() =>
fakeTimer.Elapsed += Raise.With<ElapsedEventArgs>(ElapsedEventArgs.Empty).Now);
fakeTimer
是ITimer
的一个伪装,根据这个答案,它是一个包装接口。显然这不起作用,因为我不能在表达式树内部进行赋值。
实际上我想做的是在调用
Start
方法时模拟触发计时器事件。这样我就可以断言确实调用了Start
方法。有任何(替代)想法吗? 编辑 我是个傻瓜,错是我的!我不小心添加了一个额外的
A.CallTo
,我本不应该这样做。但我不会删除这个问题,我要让Patrik Hägne获得他应得的声望 :)
A.CallTo(() => { ... })
。 - mellamokb{...}
) 的 Lambda 表达式无法转换为表达式树... - Igal TabachnikExpression<Action>
(源链接)。你可能需要显式地进行转换,因为Action
和Expression<Action>
在技术上是有歧义的:(Expression<Action>)(() => ... )
。 - mellamokb