gpt4 book ai didi

mocking - 从连续调用 Moq Mock 返回不同的结果或抛出异常

转载 作者:行者123 更新时间:2023-12-03 21:18:34 28 4
gpt4 key购买 nike

我得到一个 Moq 对象以在连续调用方法时返回不同的值。这是通过此扩展方法完成的:

public static void ReturnsInOrder<T, TResult>(this ISetup<T, TResult> setup, params TResult[] results) where T : class
{
setup.Returns(new Queue<TResult>(results).Dequeue);
}

现在我希望其中一个调用抛出异常,而其他调用返回一些内容。以前有人这样做过吗?

如果我这样做
mock.Setup(m => m.SomeMethod())
.Throws(new Exception());
mock.Setup(m => m.SomeMethod())
.Returns("ok");

然后第一个设置被覆盖,只有第二个设置仍然存在。

最佳答案

如今,Moq(版本 4+)通过其 SetupSequence 支持这一点。方法。见 this post为介绍。

关于mocking - 从连续调用 Moq Mock 返回不同的结果或抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3093466/

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