5
我正在尝试使用Moq 3.x,它的工作非常好。但是,我有一个问题,我无法弄清楚如何解决。鉴于Moq with Action参数
public interface ITestSpec
{
bool Run(Action<string, string> onIncorrectResponse);
}
我尝试以下操作:
var passingTestSpec = new Mock<ITestSpec>();
passingTestSpec
.Setup(m => m.Run(null))
.Returns(true);
Action<string, string> fakeAction =
(expected, actual) => { throw new Exception("Should not run"); };
Assert.IsTrue(passingTestSpec.Object.Run(fakeAction));
我的问题是,在passingTestSpec.Object.Run任何呼叫(...一些动作...)返回false。看起来,Moq库正在尝试将该操作与我在Setup()调用中传递给Run()的参数进行匹配,并且失败。实际上,我在Run()调用中放置什么操作并不重要......它仍然返回false。
任何想法?
[编辑]我刚发现了一些东西;如果我用
.Setup(m => m.Run(fakeAction))
代替测试通过。但是,我不知道将调用.Run()方法的操作,所以这不是一个解决方案。任何人都知道一个It.IsAny等同于行动?
LOL我应该知道有人会找到解决办法......认为我浪费了几个小时,在这个:(谢谢,我也有去,这是更好比我的。 – 2009-05-17 17:50:58