在Moq中模拟一个lambda参数

时间:2017-03-06 12:57:05

标签: c# unit-testing lambda mocking moq

我想在Moq中嘲笑这个动作:

Action<string, long> cursorPersister;

我试图以这种方式实施:

var cursorPersister = new Mock<Action<string, long>>();
cursorPersister.Setup(cp => cp.Invoke(It.IsAny<string>(), It.IsAny<long>()));

cursorPersister.Verify();

然而它不起作用。程序在我调用Setup(...)的行上冻结。 任何人都可以解释这个并提供另一种方法吗?

2 个答案:

答案 0 :(得分:1)

问题解决了。 而不是

cursorPersister.Setup(cp => cp.Invoke(It.IsAny<string>(), It.IsAny<long>()));

使用

cursorPersister.Setup(cp => cp(It.IsAny<string>(), It.IsAny<long>()));

答案 1 :(得分:-1)

只需使用字符串和长参数创建一个方法,然后传递它而不是模拟。你为什么要嘲笑它?