【发布时间】:2012-12-12 02:36:41
【问题描述】:
我得到的东西看起来像这样:
public delegate void MyCallback(string name);
public class MyClass
{
public virtual void MyFunc(string name, MyCallback callback)
{
...
}
}
现在,当我使用 moq 模拟 MyClass 时,我希望第一次调用 MyFunc 来调用回调,然后第二次调用该函数来引发一些事件,但是在使用 moq 回调之后我无法引发事件!
我能做什么?
【问题讨论】:
-
即使在 Moq 中必须有一种方法可以做到这一点,如果测试足够简单,我已经通过编写一个假的并添加类似的内容来做到这一点:
if (calls++ > 1) throw new Exception("")而不是使用 Moq。 -
您不能使用 Moq 模拟非虚拟方法(例如
MyFunc)。你到底想在这里做什么?你想更精确地测试什么?您能否为您的问题提供更多背景信息?