我得到的东西看起来像这样:
public delegate void MyCallback(string name);
public class MyClass
{
public virtual void MyFunc(string name, MyCallback callback)
{
...
}
}
现在,当我用最小起订量模拟 MyClass 时,我希望第一次调用 MyFunc 来调用回调,然后第二次调用该函数来引发一些事件,但是在使用最小起订量回调之后我无法引发事件!
我能做什么?
最佳答案
据我所知,Moq 不支持这种链接,但您可以轻松地绕过它:
var mock = new Mock<MyClass>();
int callsCount = 0;
mock
.Setup(m => m.MyFunc(It.IsAny<int>(), It.IsAny<MyCallback>()))
.Callback<int, MyCallback>(
(i, callback) =>
{
if (callsCount++ == 0) callback("Some string");
else mock.Raise(m => m.SomeEvent += null, EventArgs.Empty);
});
关于c# - Moq - 设置模拟到第一次回调和第二次引发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14042234/