gpt4 book ai didi

c# - 每次调用最小起订量时,模拟方法输出不同的输出参数

转载 作者:行者123 更新时间:2023-11-28 20:40:31 26 4
gpt4 key购买 nike

MOQ 有没有办法让对方法的顺序调用返回不同的 out 参数?获取方法的快速示例:

public void OutputANumber(out int number)

输出 1,然后输出 2(忽略它可以返回 int 的事实,它只是为了示例而不是真正的代码)。

int number = 1;
mock.Setup(n => n.OutputANumber(out number));
number = 2;
mock.Setup(n => n.OutputANumber(out number));

不起作用,因为第二个设置会覆盖第一个,同样 SetupSequence 只允许顺序返回。

最佳答案

一个解决方案是使用回调将模拟传递到一个运行新设置的方法中

int number = 1;
mock.Setup(n => n.OutputANumber(out number)).Callback(() => ChangeOut(mock));

void ChangeOut(Mock<type> mock)
{
int number = 2;
mock.Setup(n => n.OutputANumber(out number));
}

或者您可以创建一个虚拟对象来跟踪调用次数并根据需要输出新值。

关于c# - 每次调用最小起订量时,模拟方法输出不同的输出参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35322027/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com