如何为带有 in
参数修饰符 的方法设置 Moq 回调?
假设你有以下代码:
public interface ITester
{
bool IsGood(in int value);
}
这样不起作用:
var mock = new Mock<ITester>();
mock.Setup(m => m.IsGood(It.IsAny<int>()))
.Callback<int>(v => { /* whatever */ }); // ==> runtime error
mock.Object.IsGood(42);
您会收到以下异常:
System.ArgumentException : Invalid callback. Setup on method with parameters (in int) cannot invoke callback with parameters (int).
除了完全删除
in
修饰符之外,什么是正确的方法?
ref
和out
的相同方法?https://github.com/Moq/moq4/wiki/Quickstart#callbacks - Nkosi.Callback((int v) => { /* whatever */ });
,以便代码可以推断出您打算使用哪个Callback
扩展。 - Nkosi